- 变量:
- var关键字:
- 声明作用域:函数作用域,在函数内部定义一个变量,意味着该变量将在函数退出时被销毁;
- 声明提升:声明的变量会自动提升到函数作用域顶部,反复声明同一个变量也没有问题。
- let声明:
- 声明作用域:块作用域,let不允许同一个块作用域中出现冗余声明
- 暂时性死区:在let声明之前的执行瞬间,会抛出ReferenceError;
- 全局声明:与var关键字不同,使用let在全局作用域中声明的变量不会成为window对象的属性。
- for循环中的let声明:let声明迭代变量时,JS引擎在后台会为每个迭代声明一个新的迭代变量。
- const声明:
- const的行为与let基本相同,唯一重要区别是:用它声明变量时必须同时初始化变量,且尝试修改const声明的变量会导致运行时的错误。
- 若const变量引用的是一个对象,则修改此对象内部属性不违反const的限制。
- 声明风格:
- 1、不使用var
- 2、const优先,let次之
- var关键字:
- 数据类型:
- 6种简单数据类型:Undefined、Null、Boolean、Number、String、Symbol;
- 1种复杂数据类型:Object;
- typeof 操作符:确定任意变量的数据类型;
- Undefined类型:声明变量但未初始化,相当于给变量赋予了undefined值;
- Null类型:null值表示一个空对象指针;
- Boolean类型:有两个字面值,true或false;
- Number类型:表示整数和浮点数;
- NaN数值:"不是数值";
- isNaN()函数:接收任意数据类型的参数,判断其是否“不是数值”;
- 数值转换:
- Number()、parseInt()、parseFloat();
- String类型:
- 字符串特点:不可变的,一旦创建,值不能变。要修改某个变量中的字符串值,必须先销毁原始的字符串,然后将包含新值的另一个字符串保存到该变量。
- 转换为字符串:
- toString()方法可见于数值、布尔值、对象和字符串值,可接收一个底数参数,即以什么底数来输出数值的字符串表示;
- String()方法可见于null值和undefined值;
- Symbol(符号)类型:
- 符号是原始值,且符号实例是唯一的,不可变的。符号的用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。
- Object类型:
- 对象是数据和功能的集合;
- 操作符:
- 一元操作符:
- 递增/递减操作;
- 一元加和减;
- 位操作符:
- 按位与(&)、或(|)、非(~)、异或(^);
- 左移(<<)、有符号右移(>>)、无符号右移(>>>);
- 布尔操作符:
- 逻辑非(!)、逻辑与(&&)、逻辑或(||);
- 乘性操作符:
- 乘法操作符(*)、除法操作符(/)、取模操作符(%);
- 指数操作符:**
- 加性操作符:
- 加法操作符(+)
- 减法操作符(-)
- 关系操作符:
- 大于(>)、小于(<)、大于等于(>=)、小于等于(<=);
- 比较NaN时,无论是小于还是大于等于,比较的结果都会返回false;
- 相等操作符:
- 等于(==)、不等于(!=),两者会进行强制类型转换;
- null 和 undefined相等;
- null和 undefined 不能转换为其他类型的值再进行比较;
- 如果有任一操作数是NaN,则相等操作符返回false,不相等操作符返回true;
- 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true;
- 全等(===)、不全等(!==),比较时不转换操作数;
- 等于(==)、不等于(!=),两者会进行强制类型转换;
- 条件操作符:
- 判断?true的话返回此值:false的话返回此值;
- 赋值操作符:
- 等于号(=),将右手边的值赋给左手边的变量;
- 复合赋值操作符:
- 乘后赋值(*=);
- 除后赋值(/=);
- 取模后赋值(%=);
- 加后赋值(+=);
- 减后赋值(-=);
- 左移后赋值(<<=);
- 右移后赋值(>>=);
- 无符号右移后赋值(>>>=);
- 逗号操作符:
- ,可用来在一条语句中执行多个操作;
- 一元操作符:
- 语句:
- if语句;
- do while 语句,后测试循环语句,即循环体中的代码执行后才对退出条件进行求值;
- while语句,先测试循环语句,即先检测退出条件,再执行循环体内的代码;
- for语句,先测试语句;
- for-in语句,用于枚举对象中的非符号键属性;
- for-of语句,用于遍历可迭代对象的元素;
- 标签语句,用于嵌套循环;
- break和continue语句:
- break语句用于立即退出循环,强行执行循环后的下一条语句;
- continue语句用于立即退出循环,但会再次从循环顶部开始执行;
- with语句:
- 将代码作用域设置为该对象能提供便利;
- switch语句;
- 函数:
- 可封装语句,在任何地方、任何时间执行;
- return语句后跟返回的值,只要碰到return语句,函数就会立即停止执行并退出;
11-05
1978
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-28
428
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)