一、什么是表达式
-
1+2的表达式值为3
-
add(1,2)表达式的值为函数的返回值,只有函数有返回值
-
console.log表达式的值为函数本身
-
console.log(3)表达式的值为undefined
表达式与语句的区别
-
表达式一般有值,语句没有
-
语句一般会改变环境(声明、赋值)
二、标识符的规则
标识符是取名字时所用到的东西
规则
-
第一个字符可以是 字母 或 $ 或 _ 或 中文
-
后面的字符除了上面所说还可以有数字,第一个字符不可以是数字
变量名是标识符
-
var a = 1
-
var $ = 1
-
var _ = 1
-
var 你好 = 1
-
var a111 = 1
三、if else 语句
语法
- if(表达式){语句1}else{语句2}
如果(表达式)成立执行(语句1)否则执行(语句2)
-
{}在语句只有一句时可以省略,同时也代表只执行第一句!
-
a = 1 是错的 a === 1 是对的
-
推荐使用的写法
if(表达式){
语句
} else if(表达式){
语句
} else{
语句
}
四、while for 语句
while循环(当...时)
语法
-
while(表达式){语句}
-
判断表达式真假
-
表达式为真,执行语句,再次判断表达式真假
-
表达式为假,跳过,执行其它语句
var a = 1 输出内容为:1
while(a<5){ 2
console.log(a) 3
a = a + 1 4 结果:a=5
}
循环
var a = 0 //初始化 由于浮点数的存在
while(a !=== 1){ //判断a不等于1 导致a在加0.1时不准确,所以永远不等于1,从而无限循环
console.log(a) //循环体
a = a + 0.1 //增长
}
for循环
for是while循环的便捷写法
语法
-
for(语句1;表达式2;语句3){循环体}
-
先执行语句1,然后判断表达式2
-
如果为真,执行循环体,然后执行语句3
-
如果为假,直接退出循环,执行其它语句
for( var a = 1;a<5;a++){ 输出为:1 结果:a=5
console.log(a) 2
} 3
4
变态写法
for( var a = 1;a<5;a++){ 输出为:5 结果:a=5 setTimeout意思为过一会在执行
setTimeout(()=>{ 5 过一会a的值已经执行到5
console.log(a) 5 所以a的4个值都为5
}0) 5
}
注 :for循环在有let时会有专门的逻辑
五、break continue
break退出所有循环
for(var a = 0;a<10;a++){
if(a%2 === 1){ 如果a除以2余1时
break 则停止所有循环
}
} 结果:a=1
continue退出当前一次循环
for( var a = 0;a<10;a++){
if(a%2 === 1){ //如果a除以2余1时 输出为:2 结果:a=10
continnue //则停止当前一次循环 4
}else{ //否则 6
console.log(a) //打印a 8
}
}
六、label
代码示范
foo:{ 输出为:1
console.log(1); 2
break foo; //break会使内容跳出循环
console.log(本行不会输出);//所有这行不会打印
}
console.log(2)
面试
{ 输出为:1
foo:1 //代码块里面有一个标签,内容为1
}
七、补充内容
区块block
把代码包在一起,常常与 if / for / while 合用
{
cet a = 1
cet b = 2
}
问号冒号表达式
function max(a,b){
return a>b ? a:b //如果a>b返回a
} // a<b返回b
短路逻辑
取第一个假值或最后一个真值
var a = 1
console && console.log && console.log(a=1存在)
//前面的都存在才会打印 a=1存在
||短路逻辑
取第一个假值或最后一个真值
a = a || 100 //a存在则取a,不存在则取100