語法綜述:
- 在
位運算
中,JS會強制將運算目標轉換成有符號的32位整數
。引用類型
的比較傲隶,如果不是同一個變量或其引用吃靠,則兩個變量既不全等
也不相等
- 比較只有兩個元算元都是字符串時,才使用字符串序列檢測耳璧,任意一個運算元為非字符串時,都將按照值進行比較。
- 賦值是運算而不是語句赁还。
- 字符串限制(不可變性):
- 不能直接修改字符串的字符
- 字符串的連接必然導致寫復制,這將產生新的字符串
- 不能修改字符串的長度驹沿,如:修改
length
無效
- 語句存在返回值
- 表達式概念:
由運算數和操作符構成艘策,并產生結果的語法結構
JS 規(guī)則:
- 程序是由語句構成的。
- 空語句渊季,變量聲明朋蔫,函數聲明以及控制子句都不會產生返回值
- 換行符和文本結束符前可以沒有
';'
- 復制表達式具有聲明隱士變量的效果
- 標簽可以與變量重名而互不影響,因為它是另一獨立的語法元素梭域。
break
子句不但可以作用與循環(huán)與條件分支內部斑举,也可以作用與標簽化語句內部- JS中的數組,既是能以下標索引的索引數組病涨,又是一個可以存取屬性的關聯數組富玷,因此
for ... in
的屬性提取對數組有效- JS 中任何類型的值都能作為對象的屬性
- delete 無法刪除用
var
聲明的變量;直接繼承的原型鏈上的成員既穆。刪除宿主成員的能力要看瀏覽器提供與否instanceof
運算符用來測試一個對象在其原型鏈中是否存在一個構造函數的 prototype 屬性- 用 in 能檢測到的屬性用for...in不一定能列舉赎懦;原型鏈成員能被for...in列舉,卻不能被propertyIsEnumerable()列舉(只檢測對象的非繼承屬性)。
二義性
- 如果+表達式中存在字符串幻工,則優(yōu)先字符串連接
- 二義性中励两,語句優(yōu)先
+
,{}
,[]
,()
,,
,:
皆存在二義性