1. 表达式与语句
表达式与语句的差别:
- 表达式一般有值,语句可能没有值
- 语句一般会改变环境(声明,赋值)
注意:值和返回值是不同的,只有函数有返回值
例如:console.log(3)表达式的值为函数的返回值3
2. 标识符
规则:
- 第一个字符可为 字母 $ _ 中文
- 后面的字符除上面提到的内容外,还可以是 数字
3. if else 语句
语法:
if (表达式) {
语句
}else{
语句
}
其中,语句中可嵌套if else,且若语句只有一句,则{}可省略,这也是else if的来历。
if (表达式) {
语句
}else if(表达式){
语句
}
4. if else 语句的拓展:switch语句
语法:
var a = 1;
switch(a){
case 1:
case 3:
console.log("这是单数")
break;
case 2:
case 4:
console.log("这是双数")
break;
}
注意:必须要有break
5. if else 语句的拓展:问好冒号表达式
语法:
表达式 ? 表达式 : 表达式
例如
var a = 3
a>2 ? "yes" : "No"
6. if else 语句的拓展:&&短路逻辑
语法:
A && B && C && D
若ABC有一个为假,则输出假,若都为真,则输出D
window.Object && console.log("yes")
yes
window.f1 && console.log("yes")
undefined
7. if else 语句的拓展:||短路逻辑
语法:
a || b
等价于
if (!a){
b
}
例如:
window.f1 || console.log("x")
x
8. while 循环语句
语法:
while (表达式) {
语句
}
当表达式为真时,执行语句,执行完成后再次判断表达式,直到表达式不成立,所以使用while语句时需要注意死循环
a = 0.1
while (a !== 1){
console.log(a)
a=a+1
}
以上代码会造成死循环,因为js的浮点数计算不精确
9. for—while的语法糖
while的语法结构如下:
a = 0.1 // 初始化
while (a !== 1){ // 判断
console.log(a) //循环体
a=a+1 //增长
}
可用for循环写为:
for(初始化;判断;增长){
循环体
}
运行顺序为:
- 初始化
- 判断
- 循环体
- 增长
所以,以下代码只会返回1,2,3,4
for (i = 0 ; i < 5 ; i++){
console.log(i)
}
特例:setTimeoutt 表示过一段时间运行,所以,以下代码会打出5个5
for (var i = 0 ; i < 5 ; i++){
setTimeout(() => {
console.log(i)
})
}
但是,当不使用var 使用 let 时,还是会打出1,2,3,4
10. break 直接跳出循环
for (var i = 0 ; i < 10 ; i++){if(i % 2 === 1) {break} }
undefined
i
1
上面的代码中,当i = 1 时,满足条件,所以会直接推出循环 另外,当有多层循环时,break只会推出最近的一层循环
11. continue 跳出当前循环
我们可以将continue理解为next(直接忽略)
for (var i = 0 ; i < 10 ; i++){if(i % 2 === 1) {continue}
else{
console.log(i)
}
}
0
2
4
6
8
我们可以看到,continue只跳过了1,3,5,7,9,但并没有跳出for循环
12. label
{
a:1;
}
上面代码的意思是代码块中有一个标签a,a的内容为1,不是对象