語(yǔ)法綜述:
- 在
位運(yùn)算
中,JS會(huì)強(qiáng)制將運(yùn)算目標(biāo)轉(zhuǎn)換成有符號(hào)的32位整數(shù)
。引用類(lèi)型
的比較,如果不是同一個(gè)變量或其引用,則兩個(gè)變量既不全等
也不相等
- 比較只有兩個(gè)元算元都是字符串時(shí),才使用字符串序列檢測(cè),任意一個(gè)運(yùn)算元為非字符串時(shí),都將按照值進(jìn)行比較。
- 賦值是運(yùn)算而不是語(yǔ)句。
- 字符串限制(不可變性):
- 不能直接修改字符串的字符
- 字符串的連接必然導(dǎo)致寫(xiě)復(fù)制,這將產(chǎn)生新的字符串
- 不能修改字符串的長(zhǎng)度,如:修改
length
無(wú)效
- 語(yǔ)句存在返回值
- 表達(dá)式概念:
由運(yùn)算數(shù)和操作符構(gòu)成,并產(chǎn)生結(jié)果的語(yǔ)法結(jié)構(gòu)
JS 規(guī)則:
- 程序是由語(yǔ)句構(gòu)成的。
- 空語(yǔ)句,變量聲明,函數(shù)聲明以及控制子句都不會(huì)產(chǎn)生返回值
- 換行符和文本結(jié)束符前可以沒(méi)有
';'
- 復(fù)制表達(dá)式具有聲明隱士變量的效果
- 標(biāo)簽可以與變量重名而互不影響,因?yàn)樗橇硪华?dú)立的語(yǔ)法元素。
break
子句不但可以作用與循環(huán)與條件分支內(nèi)部,也可以作用與標(biāo)簽化語(yǔ)句內(nèi)部- JS中的數(shù)組,既是能以下標(biāo)索引的索引數(shù)組,又是一個(gè)可以存取屬性的關(guān)聯(lián)數(shù)組,因此
for ... in
的屬性提取對(duì)數(shù)組有效- JS 中任何類(lèi)型的值都能作為對(duì)象的屬性
- delete 無(wú)法刪除用
var
聲明的變量;直接繼承的原型鏈上的成員。刪除宿主成員的能力要看瀏覽器提供與否instanceof
運(yùn)算符用來(lái)測(cè)試一個(gè)對(duì)象在其原型鏈中是否存在一個(gè)構(gòu)造函數(shù)的 prototype 屬性- 用 in 能檢測(cè)到的屬性用for...in不一定能列舉;原型鏈成員能被for...in列舉,卻不能被propertyIsEnumerable()列舉(只檢測(cè)對(duì)象的非繼承屬性)。
二義性
- 如果+表達(dá)式中存在字符串,則優(yōu)先字符串連接
- 二義性中,語(yǔ)句優(yōu)先
+
,{}
,[]
,()
,,
,:
皆存在二義性