1. 初识JavaScript
- 基本概念
- JavaScript是一种运行在客户端的脚本语言(Script是脚本的意思)
- 脚本语言:不需要编译,运行过程中由js解释器(js引擎)逐行来进行解释并执行
- 现在也可以基于Node.js技术进行服务器端编程
- JS作用
- 表单动态校验(密码强度检测)(JS产生最初的目的)
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- APP(Codova)
- 控制硬件-物联网(RUff)
- 游戏开发(coco2sd-js)
- 浏览器执行js
浏览器分为2部分,渲染引擎和JS引擎
- 渲染引擎:用来解析HTML和CSS,俗称内核,比如chrome浏览器的blink,老版本的wekbit
- JS引擎:也称为js解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如chrome浏览器中的V8
浏览器本身并不会执行js代码,而是通过内置JS引擎来执行JS代码。JS引擎执行代买是逐行解释每一句源码(转换为机器语言,二进制语言),然后由计算机去执行,所以JS语言归为脚本语言,会逐行解释执行
- JS组成
-
ECMAScript:是由ECMA国际进行标准化的一门编程语言,会被称为JavaScript和Jscript,实际这两者是ECMAScript语言的实现和扩展。它规定了JS的编程语法和基础核心知识,是所有浏览器共同遵守的一套JS语法工业标准。
-
DOM 文档: 文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展语言的标准程序接口。通过DOM提供的接口可以对页面上的各种元素进行操作(大小,位置,颜色等)
-
BOM:浏览器对象模型(Browser Object Model),他提供了独立于内容的,可以和浏览器窗口进行互动的对象结构,通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转,获取分辨率等。
- JS书写
- 行内
<!-- 1.行内式js,直接写到元素内部 -->
<input type="button" value="唐伯虎" onclick="alert('秋香')">
- 内嵌
<!-- 2.内嵌式js -->
<script>
alert('我是编程语言,来控制电脑网页弹出你好');
</script>
- 外部
<!-- 外部js 引入,双标签 -->
<script src="my.js"></script>
注意点
- 在html中推荐使用双引号,js中推荐使用单引号
- 引用外部js文件的script标签中不可以写代码
2. JavaScript 注释
单行注释:// 。快捷键:ctrl+/
多行注释:/* */。 快捷键:shift + alt +a
3. JavaScript输入输出语句
//输入框
prompt('请输入你的年龄');
// alert 弹出警示框 弹出的 展示给用户看
alert('计算的结果是');
// consolo 控制台输出 给程序员测试用的
console.log('我是程序员能看到的')
4.变量
1.变量的主要作用
- 变量是用于存放数据的容器,通过变量名可以获取数据和修改数据
- 本质:是程序在内存中申请的一块用来存放数据的空间
2.变量的初始化
- var 。 (variable),使用该关键字可以声明变量,计算机会自动为变量分配内存空间
// 声明变量
var age;
// 给变量赋值, 把值存入到这个变量中
age = 18;
// 控制要打印输出
console.log(age);
- 变量的初始化:声明一个变量并赋值
var myname = '柒楠';
//测试
console.log(myname);
- 浏览器用户赋值存储到变量中
// 弹出一个输入框,提示用户输入姓名 并将姓名存储起来
var usrname = prompt('请输入你的名字:')
// 弹出一个对话框,输出用户刚才输入的姓名
alert(usrname)
- 更新变量:后面的赋值会覆盖前面的
- 声明多个变量
//声明多个变量
var age = 18,
address = '火影树',
gz = 2000;
- 声明变量特殊情况
// 声明变量的特殊情况
// 1.只声明,不赋值 程序也不知道里面存的啥,所以结果是undefined 未定义的
var sex;
console.log(sex); //undefined
// 2.不声明直接使用 会报错
console.log(tel); //报错
// 3.不声明直接赋值使用
qq=100;
console.log(qq); //100,有结果,目前不推荐使用 涉及全局变量
3.变量的命名规范
-
由字母(A-Za-z),数字(0-9),下划线(_),美元符号($)组成,如usrAge,num01,_name等
-
严格区分大小写,app和App是两个变量
-
不能以数字开头
-
不能时关键字,保留字。如:var, for , while等,还有name在js有特殊含义,不要使用
-
变量名必须有意义。
-
遵守驼峰命名法。首字母小写,后面单词的首字母需要大写,如myFirstName
4.画出变量是如何在内存中存储的
5. 数据类型
1.数据类型概念
不同数据占有存储空间不同,数据类型的出现是为了充分利用空间,对所需内存大小不同的数据进行分类。数据类型是数据的类别型号
变量的数据类型(注意有别于Java和c): JS是一种弱类型或者说动态语言,在程序运行过程中,类型会被自动确定。(感觉和python有点像)
2.简单数据类型
简单数据类型:
-
Number 数字型
进制var num = 10; // num 数字型 var num1 = 010; // 八进制 0~7 数字前面加0 var num2 = 0x9; //十六进制 0~9 a~f 数字前面加 0x
最大最小值
alert(Number.MAX_VALUE); // 最大值 1.7976931348623157e+308 alert(Number.MIN_VALUE); // 最小值 5e-324
三个特殊值
console.log(Number.MAX_VALUE * 2); // Infinity 无穷大 alert(Infinity); console.log(-Number.MIN_VALUE * 2); // Infinity 无穷小 alert(-Infinity); console.log('hello' - 100);// NaN 非数字 alert(NaN);
isNaN(): 用来判断一个变量是否为非数字类型,返回true或者false
-
String 字符串型
由引号(建议单引号)围住的部分,当引号嵌套的时候,注意要选择外单内双,或者是内单外双,或者是转义符,常见的如下所示:
注意:任何类型的数据+字符串型 都会变成字符串型字符串长度 length:
var str = 'hello 柒楠 你真可爱'; console.log(str.length); // 13 length求字符长度
-
Boolean 布尔型
布尔型有2个值,true表示对,false表示错 -
Undefined 未定义
-
Null 空值
分别和number和string相加结果如下
var flag1 = true, // boolean
flag2 = false,
variable, //undefined
a = null; //null
num = 10, // number
str = '你好呀', //string
// boolean + number
console.log(flag1 + num); //11 true 和数字相加作为1
console.log(flag2 + num); //10 false 和数字相加作为0
// bolean + string
console.log(flag1 + str); //true你好呀
console.log(flag2 + str); //false你好呀
// undefined + number
console.log(variable + num); //NAN
// undefined + string
console.log(variable + str); //undefined你好呀
// null + number
console.log(a + num); //10 null和数字相加作为0
// null + string
console.log(a + str); //null你好呀
复杂数据类型
- Object
3.获取变量数据类型
使用typeof
console.log(typeof 12);
4.数据类型转换
-
转换为字符串类型
-
转换为数字类型
-
转化为布尔型
代表空或否的值会被转化为flase。如:’’ 0 NaN null undefined
其余值会被转化为true