1. 语法
- 所有都区分大小写(变量名、函数名、操作符、语句等都所有都区分大小写)
- 严格模式:‘use strict’
2. 变量
- 用来保存任意数据类型的数据,为松散类型
- 用var定义,会成为该变量所在作用域的局部变量;省略var定义变量,会成为全局变量;函数作用域中的变量会在函数退出后被销毁
- 定义未赋值的变量,默认值为undefined
- 用逗号分隔可以在一个语句中定义多个变量,var a,b,c;
3. 数据类型
- 基本数据类型:Undefined、Null、Boolean、Number、String
- 引用类型:Object(Function、Array、Object、Math、Date、RegExp)
- typeof 操作符:检测基本数据类型(Undefined、Boolean、Number、String、Object、Function);Object、Null、Array都会返回Object
4. 标识符
- 变量、函数、属性、函数参数等的名字
- 字母、数字、下划线、美元符号中的一个或多个组成的,第一个字符不能为数字
5. 操作符
- Boolean():&&,||,!,>,>=,<,<=,== , !=
- Number():+,-,,/,%,=,+=,-=,=,/=,%=,++,–
- String():+
- 逗号:
- 用于赋值时返回表达式中的最后一项
var a = (1,2,3) //a=3 - 用于在一条语句中执行多个操作
console.log(a,b)
var a,b,c;
- 全等(不做类型转换):=== , !==
- 三元操作符:
let a= 3>0?1:2
6. 语句
- 语句以分号结尾
- 多条语句组成一个代码块{}
- 各种语句:
- if:if(){} else if(){} else{}
- do…while:do{} while()
先执行,再判断条件是否符合,所以最少会执行一次 - while:while(){}
先判断条件是否符合,再执行,所以可能一次都不执行 - for:for(初始值;条件;循环后操作){循环体}
执行顺序:变量初始化,判断条件,执行循环体,循环的最后一步是for的最后一项(如++)
只要循环体执行了,就一定执行一遍++,i++是循环体的最后一步
for()里面的参数都省略时,为无限循环
i=0->i<5->console.log(i)->i++
i<5->console.log(i)->i++
for(var i=0;i<5;i++){
console.log(i)
}
var i=0;
while(i<5){
console.log(i)
i++
}
- for…in:遍历对象,由于对象的属性名时无序的,所以循环的属性名顺序也是不定的
- switch:替换if语句条件特别多的情况
当条件全等于value1时执行代码1
当条件全等于value2时执行代码2
当条件全等于value3或者value4时执行代码3
以上条件都不满足时执行代码0
条件和每个case中可以是任意数据类型的变量或表达式
switch(条件){
case value1:
代码1;
break;
case value2:
代码2;
break;
case value3:
case value4:
代码3;
break;
default:
代码0;
}
switch(true){
case 1>2:
console.log('1');
break;
case 0&&1:
console.log('2');
break;
case 1>0:
case 2<0:
console.log('3');
break;
default:
console.log('0');
}
- break和continue:用于退出循环语句
break:退出当前的整个循环
continue:退出当前整个循环中的当前一个循环,少执行一次 - label:label名:代码(一般为多个嵌套的for循环)
在代码中添加标签,一遍将来使用
改标签将来可以由break或continue语句引用,break 标签名;
标签一般都加在多个嵌套的for循环中 - with:with(条件){代码}
width(window.location){console.log(href)}
href会被看成该作用域的局部变量,当前作用域找不到时,会查找window.location对象的属性,有则href的值为该同名属性的属性值
7. 表达式
- 一般会返回一个值
