表达式和语句
表达式
1+2 值为3
add(1,3) 值为函数返回值
console.log 值为函数本身
console.log(3) 值为undefined
语句
var a = 1 赋值语句
两者区别
- 表达式一般都有值,语句可能有值
- 语句一般不会改变环境(说明赋值)
- 上面两句话并不绝对
return
return 后面不能加换行
注释
两种方式
// 单行注释
/**/ 多行注释
多写采坑注释
if else
条件判断
if(true/false){
//为真的逻辑
}else{
//为假的逻辑
}
不写花括号只会管第一条语句
if(true)
console.log('这里会执行');
console.log('这里不会执行');
while
判断括号中的条件为true则执行
while(){
}
面试题
以下代码是否会死循环
let a = 0.1
while(a!==1){
a+=0.1
}
由于与js浮点数相加得到的可能是一个不精确的值例如
0.1 +0.2 = 0.30000000000000004
0.7+0.1 = 0.7999999999999999
这就导致a无法等于1就会出现死循环
for
for循环将初始值,判断条件,变量的值的改变都写在括号中
for(let i = 0;i<10;i++){
}
执行顺序
- 首先声明变量 i
- 然后判断条件是否满足
- 执行循环体
- 自增
- 一直在2、3、4步骤重复直到条件不成立。
break
默认用来结束当前循环,可指定一个label来指定要跳出到那个代码块。
aa:for(let i = 0;i<10;i++){
console.log(i)
for(let j = 0;j<100;j++){
if(j===10){
break aa;
}
}
}
0//输出0
当j===10的时候跳到aa的代码块并结束循环。
continue
结束本次循环用法和break一样。
总结
- 不要相信人类,只要是人类就会犯错
- 不要使用有歧义的写法