表达式与语句
-
1+2是表达式,var a = 1是语句 -
console.log(3): 表达式的值是undefined, 打印出来的是3
s语法需要注意的点:
- 大小写敏感:我们一直用的
window是小写, chrome输出是大写, 那是因为chrome控制台瞎搞 - 空格回车随意: 不影响语义的空格和回车, 任意删减都没有关系. return后面不加回车, 加了回车, js原创: 自动添加undefined
- 变量名: 大部分Unicode字符都可以用做变量名, 数字不能开头, 下划线最多2
- 好的注释:
- 踩坑注释
- 为什么代码写这么奇怪.
判断
-
三个等号优于两个等号
-
if不省括号:使用最没有歧义的写法, switch 不推荐, 容易错,特别是:break不写就完了
-
a&&b&&c表达式的值:取第一个假值,a||b||c表达式的值:取第一个真值
循环
- 不要用
while(整数 === 浮点数 )作为循环终止条件:
- 所有循环执行结束才执行
setTimeout:
let是例外情况:
- 这个时候a的值是不确定的, 不确定什么时候会修改a
例如:
label 代码块
//这是一个label代码块
fo:{
console.log("1")
var a = 1
}
//这是一个对象
var a = {
fr: "ks";
tl: "kda";
}
//chrome中, 下面这个式子会当成对象:
{
fo: 1
}
//chrome下面的当成代码块
{
fo:1;
}
对象和label块的区别, 只有面试会问