Skip to content

JavaScript

1、变量

变量是数据的命名存储

使用varlet 来声明变量。

常量:值不变的变量,使用const 声明。

变量命名:

  • 变量名称仅包含字母、数字、符号、$_
  • 首字符不能为数字

区分大小写

2、数据类型

数据类型

3、数据类型的转换

字符串转换

  • 显式地调用String(value)value 转换为字符串类型

  • + 字符串拼接

数字型转换

  • 在算数运算中,会自动进行number 类型转换
javascript
console.log("6" / "2"); // 3
  • 使用Number(value) 显式将value 转换为number 类型

number 类型转换规则:

结果
undefinedNaN
null0
truefalse10
string去掉首尾空白字符,如果剩下的字符串为空,则结果为 0,反之,读取剩余字符串的数字,遇到非数字时返回NaN
javascript
alert(Number("   123   ")); // 123
alert(Number("123z")); // NaN(从字符串“读取”数字,读到 "z" 时出现错误)
alert(Number(true)); // 1
alert(Number(false)); // 0

布尔型转换

  • Boolean(value) 显式转换

转换规则:

结果
0、空字符串、nullundefinedNaNfalse
其它值true

4、运算符

  • 运算元: 运算符应用的对象。如5 * 2,有两个运算元: 左运算元5 和右运算元2

  • 如果一个运算符对应的只有一个运算元,那么它就是一元运算符

  • 如果一个运算符拥有两个运算元,那么它就是二元运算符

数学运算:

  • 加法 +
  • 减法 -
  • 乘法 *
  • 除法 /
  • 取余 %
  • 求幂 **

运算符优先级:

优先级名称符号
15一元加号+
15一元负号-
14求幂**
13乘号*
13除号/
12加号+
12减号-
2赋值符=

自增 / 自减:

++--

比较运算符:

><>=<======!=!==

  • 总返回布尔值
  • 对不同类型的值进行比较时,它们会被优先转换为数字比较(不包括严格相等)

注意

严格相等运算符在进行比较时不会做任何的类型转换。

nullundefined==中不会进行类型转换。

在非严格相等 == 下,nullundefined 相等且各自不等于任何其他的值。

三目运算符(三元表达式)

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;