Appearance
JavaScript
1、变量
变量是数据的命名存储。
使用var、let 来声明变量。
常量:值不变的变量,使用const 声明。
变量命名:
- 变量名称仅包含字母、数字、符号、
$和_ - 首字符不能为数字
区分大小写
2、数据类型
3、数据类型的转换
字符串转换
显式地调用
String(value)将value转换为字符串类型+字符串拼接
数字型转换
- 在算数运算中,会自动进行
number类型转换
javascript
console.log("6" / "2"); // 3- 使用
Number(value)显式将value转换为number类型
number 类型转换规则:
| 值 | 结果 |
|---|---|
undefined | NaN |
null | 0 |
true 和 false | 1 和0 |
string | 去掉首尾空白字符,如果剩下的字符串为空,则结果为 0,反之,读取剩余字符串的数字,遇到非数字时返回NaN |
javascript
alert(Number(" 123 ")); // 123
alert(Number("123z")); // NaN(从字符串“读取”数字,读到 "z" 时出现错误)
alert(Number(true)); // 1
alert(Number(false)); // 0布尔型转换
Boolean(value)显式转换
转换规则:
| 值 | 结果 |
|---|---|
0、空字符串、null、undefined、NaN | false |
| 其它值 | true |
4、运算符
运算元: 运算符应用的对象。如
5 * 2,有两个运算元: 左运算元5和右运算元2。如果一个运算符对应的只有一个运算元,那么它就是一元运算符。
如果一个运算符拥有两个运算元,那么它就是二元运算符。
数学运算:
- 加法
+ - 减法
- - 乘法
* - 除法
/ - 取余
% - 求幂
**
运算符优先级:
| 优先级 | 名称 | 符号 |
|---|---|---|
| 15 | 一元加号 | + |
| 15 | 一元负号 | - |
| 14 | 求幂 | ** |
| 13 | 乘号 | * |
| 13 | 除号 | / |
| 12 | 加号 | + |
| 12 | 减号 | - |
| 2 | 赋值符 | = |
自增 / 自减:
++、--
比较运算符:
>、<、>=、<=、==、===、!=、!==
- 总返回布尔值
- 对不同类型的值进行比较时,它们会被优先转换为数字比较(不包括严格相等)
注意
严格相等运算符在进行比较时不会做任何的类型转换。
null 和undefined 在==中不会进行类型转换。
在非严格相等 == 下,null 和 undefined 相等且各自不等于任何其他的值。
三目运算符(三元表达式)
javascript
条件 ? 语句1 : 语句2;逻辑运算符:
&&、||、!
空值合并运算符:
??
如果第一个参数不是null/undefined,返回第一个参数,否则,返回第二个参数。
注意
空值合并运算符不能与|| 或&&一起用。
5、条件分支语句
if
javascript
if(con) {
...
}
else if (con1) {
...
}
else {
...
}switch
javascript
switch(value) {
case "value1":
...
break;
case "value2":
...
break;
default:
...
break;
}6、循环
while
javascript
while(con) {
...
}do...while
javascript
do {
...
} while (con)for
javascript
for (begin; con; step) {
...
}跳出循环:
break: 终止循环
continue: 跳出本次循环,执行下一次循环
7、函数
函数:可重用的代码块。
- 作为参数传递给函数的值,会被复制到函数的局部变量。
- 函数可以访问外部变量,但函数外部不能看到函数内的局部变量。
- 函数可以返回一个值。如果没有返回值,则返回
undefined。
声明函数:
javascript
function 函数名(parameter1, parameter2, ...) {
...
}函数表达式:
javascript
let sayHi = function() {
...
}局部变量:
在函数内部声明的变量。
提示
实参小于形参,匹配不上的形参默认为undefined。
箭头函数:
javascript
let func = (arg1, arg2, ...) => expression;