真心的不懂javascript这些基础知识


一、typeof 值

1、typeof(null) => object
2、typeof(undefined) => undefined
3、typeof(false) => boolean
4、typeof(a) => undefined //插一句 alert(a) => 报错
5、typeof(NaN) => number

二、true/false可以与数字进行运算,如:

1+true => 2
1-false => 1

三、数字 与 数字型字符串 作运算
除了加法之外其他的 减 乘 除 都可以“混搭”,且得到的是number,如:

'3' – 1 => 2
'3' * '3' => 9
3 / '1' => 3

加法一般情况是不行的,由于 运算符 “+”和 连字符 “+”写法相同,所以才产生了这个混乱,如:

1 + 1 => 2
'1' + 1 => '11'
1 + '1' => '11'

想要让 加法 也中上面减乘除一样支持“混搭”的话,需要先把 数字型字符串 转换为number,如:

1 + (+'1') => 2

这样就行了,+'1' 可以把 数字型字符串 转换为number

四、IE浏览器以及Firefox下的javascript冒泡事件的响应层级
1、在IE6及以上版本,冒泡事件层级太到document对象,在Firefox(Mozilla 1.0及更高版本)对冒泡事件支持达到window对象。
2、Firefox同时支持两种事件类型模型: 捕获型事件和 冒泡型事件 。