表达式
一般有值
1+2(3),函数(返回值),console.log(console.log)
console.log(3)(undefine)打印出3
语句
可能没有值
var a=1(undefine)
回车
return后面加回车的话会自动补充undefine
function fn(){
return //undefine
3
}
标识符
规则
unicode字母//_/中文、数字]
条件
if
if(表达式){语句1}else{语句2}
-
表达式 1==2数字写左边,避免错写成赋值
-
或者用个报错编辑器
if(a===2) console.log('a'),console.log('a=2')
两个都打,因为,默认是一个语句
switch
switch(fruit){
case 'as':
//...
break;
default:
//...
}
break坑
另类判断
判断&&or||执行 当成一个if-elase:
&&
前面的值为假,后面的值不用判断直接跳过
if(前面){后面}
A&&B
假如前面为真值,则执行后面语句
||
前面的值为真,后面的值不用判断直接跳过,结果都是真
if() {前面}else{后面}
A=A||B
假如前面为假值,则执行后面语句
while for
while(表达式){语句}
for(i=0;i<10;i++){}
a=a+0.1 永远到不了1--浮点数
for(var i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0)
}
i打印5次,都是5
for(let i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0)
}
打印01234
for(;i<5;i++)在外面赋值了i可不写到里面
break continue
break退出当前循环,不会退出当前循环上一级循环
continue退这次循环,进入下一次循环
label
foo:{}代码块的标签
{foo:1} 1的标签