JS 变量
JS 声明变量
- 使用 var 关键字来声明变量
- 一个 var 可同时声明多个变量,变量之间用逗号隔开
- 多个变量可跨行声明,多行之间用逗号分隔
- 使用赋值符号 = 给声明的变量赋值
- 未赋值的变量为 undefined
- 重复声明某个 JS 变量,将不会丢失它的值
JS 运算符
JS 算术运算符
| 运算符 |
描述 |
| + |
加法 |
| - |
减法 |
| * |
乘法 |
| ** |
幂(ES2016) |
| / |
除法 |
| ++ |
递加 |
| -- |
递减 |
| % |
取余 |
JS 赋值运算符
| 运算符 |
例子 |
等同于 |
| = |
x = y |
x = y |
| += |
x += y |
x = x + y |
| -= |
x -= y |
x = x - y |
| *= |
x *= y |
x = x * y |
| /= |
x /= y |
x = x / y |
| %= |
x %= y |
x = x % y |
| <<= |
x <<= y |
x = x << y |
| >>= |
x >>= y |
x = x >> y |
| >>>= |
x >>>= y |
x = x >>> y |
| &= |
x &= y |
x = x & y |
| ^= |
x ^= y |
x = x ^= y |
| |= |
x |= y |
x = x | y |
| **= |
x **= y |
x = x ** y |
JS 比较运算符
| 运算符 |
描述 |
| == |
等于 |
| === |
等值类型 |
| != |
不等于 |
| !== |
不等值或不等型 |
| > |
大于 |
| < |
小于 |
| >= |
大于或等于 |
| <= |
小于或等于 |
| ? |
三元运算符 |
JS 逻辑运算符
| 运算符 |
描述 |
| && |
逻辑与 |
| || |
逻辑或 |
| ! |
逻辑非 |
JS 类型运算符
| 运算符 |
描述 |
| typeof |
返回变量的类型 |
| instanceof |
如果对象是对象类型的实例,返回true |
JS 位运算符
| 运算符 |
描述 |
例子 |
等同于 |
结果 |
| & |
按位与 |
5&1 |
0101&0001 |
0001 |
| | |
按位或 |
5|1 |
0101|0001 |
0101 |
| ~ |
非 |
~5 |
~0101 |
1010 |
| ^ |
按位异或 |
5^1 |
0101^0001 |
0100 |
| << |
零填充左位移 |
5<<1 |
0101<<1 |
1010 |
| >> |
有符号右位移 |
5>>1 |
0101>>1 |
0010 |
| >>> |
零填充右位移 |
5>>>1 |
0101>>>1 |
0010 |
JS 数据类型
JS 原始数据类型
- 原始数据值是一种没有额外属性和方法的单一简单数据值
- typeof 运算符返回以下原始类型之一:undefined、boolean、number、string
| 数据类型 |
描述 |
| Undefined |
未定义的 |
| Null |
对空类型( typeof 返回的类型是Object对象,是 JS 的一个 bug) |
| Boolean |
布尔类型 |
| Number |
数值类型 |
| String |
字符串类型 |
| Symbol |
独一无二的值(ES6引入) |
JS 引用数据类型
| 数据类型 |
描述 |
| Object |
对象 |
| Array |
数组 |
| Function |
函数 |
JS 复杂数据类型
- typeof 运算符返回以下两种类型之一:function、object
- typeof 运算符把对象、数组或null返回 object
- typeof 运算符不会把函数返回 object
JS 拥有动态数据类型
var x; //现在 x 为 undefined
var x = 5; //现在 x 为数字
var x = "Jasner"; //现在 x 为字符串