笔记2
1. typeof(xxx)和typeof xxx是等价的。
2. null和undefined都是独立类型,typeof(null)返回object,这是一个官方承认的错误——总之记住就好了。
3. typeof(alert)返回function,事实上应该返回object,但是为了方便,函数对象特别的返回了function。
4. 使用Boolean()类型转换时,0,空字符串(""),undefined,NaN都会返回false,特别的,字符串"0"返回true。
5. 运算符会默认将运算参数转换为对应的类型。比如:1+"3"=13。特别的,1+1+"3"="23","2"/"2"=1。
6. 我们可以方便的把+运算符作为数值类型转换符号。
+("987654321") //returns 987654321
7. 赋值语句同样有返回值,默认返回计算值。
console.log(3+(a=1+2)) //6
8. 逗号运算符:依次执行每一个语句,并返回最后的结果。
a=(b=1+1,b*2,2+9) //returns 11
9. 字符串比较大小比较的是unicode编码,并按位数依次比较,知道区分差异。特别的:'a'>'A'。
10. ==与===的区别,==不区分类型。
'1'==1 //true
'1' === 1 //false
11. null>0返回false,null==0返回false,但 null>=0 返回true。因为相等性检测 ==
和普通比较符 > < >= <=
的代码逻辑是相互独立的。比较会将两侧转化为数字,所以0>=0,但是undefined和null在==中不会进行任何比较,换句话说,null==undefined,除此之外他们不等于任何值。
12. javascript默认提供的三种模态窗口:alert,prompt,confirm
13. 比较运算符返回boolean值,很多时候我们喜欢书写这样的语句:a=(b>c)?true:false,这种时候可以简写为a=(b>c)。
14. 老生常谈,逻辑运算符的运用:" true && '' && false 返回 '',false || 'test' || 1 返回 'test'。
15. 逻辑运算符不总是返回true|false。
'good' && 'good2' && 'last good' // 'last good'
null || 0 || undefined // undefined
16. 取反运算符的利用:两次取反可以替代Boolean()。
17. alert返回undefined,confirm返回boolean,prompt返回输入值。
18. 代码块如果只有一条语句可以简写到一行省略大括号。
if(a>b) console.log(a)
19. 选择运算符(?)后不支持书写break和continue,请换用if。
20. 为了解决嵌套循环中break和continue不知道跳出到哪一层循环的问题,提供label标签:
outer:while(condition1){
while(condition2){
break outer;
}
}
21. switch case语句的老要求:如果匹配完成后没有break语句,将会默认执行后面的所有语句并不进行case判断。
22. 以下语句意味着两个条件均执行同样的语句:
case a:
case b:
codes***
23. case语句的匹配是完全匹配,即===,而不是==。