嚴(yán)格模式 為js定義了一種不同的解析與執(zhí)行模型,對(duì)一些不確定的行為進(jìn)行處理痒钝,對(duì)一些不安全的操作也會(huì)拋出錯(cuò)誤秉颗。
使用嚴(yán)格模式,加入"use strict"
省略var操作符創(chuàng)建的變量就成了全局變量送矩。
typeof null 返回 object
在使用var聲明變量但未對(duì)其加以初始化時(shí)蚕甥,這個(gè)變量的值就是undefined。
null值表示一個(gè)空對(duì)象指針栋荸。如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象菇怀,那么應(yīng)該將其初始化為null。
NaN(not a number)是一個(gè)特殊的數(shù)值晌块,用來(lái)表示一個(gè)本來(lái)要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值的情況爱沟。任何涉及NaN的操作都會(huì)返回NaN,其次匆背,它與任何值都不想等呼伸,包括他自身。
三個(gè)轉(zhuǎn)換數(shù)值的函數(shù)钝尸。
- Number() 適用于任何數(shù)據(jù)類型
- parseInt() 字符串轉(zhuǎn)換為整型
- parseFloat() 字符串轉(zhuǎn)換為浮點(diǎn)型
Number()
- true 1 false 0
- null 0
- undefined nan
- 字符串 空串 0 無(wú)法轉(zhuǎn)換的字符串 nan
parseInt()
- 忽略字符串前面的空格括享,直到找到第一個(gè)非空格字符,如果找到的不是數(shù)字或負(fù)號(hào)珍促,返回NaN
- 0x 16進(jìn)制
- parseInt可接受第二個(gè)轉(zhuǎn)換時(shí)的基數(shù)作為參數(shù)铃辖,如16表示16進(jìn)制。
parseFloat()
- 字符串的第一個(gè)小數(shù)點(diǎn)有效猪叙,第二個(gè)以后就無(wú)效了
- 16進(jìn)制的字符串被轉(zhuǎn)換成0
- 如果解析的是整數(shù)娇斩,則會(huì)返回整數(shù)。
String
String() 如果值有toString方法沐悦,則調(diào)用該方法并返回相應(yīng)結(jié)果成洗。如果是null,返回“null”藏否,如果是undefined瓶殃,返回“undefined”。
Object類型
Object類型是所有它的實(shí)例的基礎(chǔ)副签。它的屬性和方法也同樣存在與更具體的對(duì)象中遥椿。
操作符
邏輯與和非屬于短路操作基矮,第一個(gè)能確定結(jié)果,不會(huì)求第二個(gè)值冠场。
加法操作符 如果有一個(gè)操作數(shù)是對(duì)象家浇,數(shù)值或布爾值,則會(huì)調(diào)用toString方法取得相應(yīng)的字符串值碴裙。減法操作符會(huì)調(diào)用Number方法钢悲。
兩組操作符 相等和不相等--先轉(zhuǎn)換再比較 全等和不全等-- 僅比較
語(yǔ)句
switch語(yǔ)句在比較時(shí)使用的是全等操作符
函數(shù)不介意傳遞進(jìn)來(lái)多少個(gè)參數(shù),也不在意傳進(jìn)來(lái)的數(shù)據(jù)類型舔株,因?yàn)閮?nèi)部是用一個(gè)數(shù)組來(lái)表示的莺琳,所以js不能實(shí)現(xiàn)函數(shù)重載。