JavaScript物件字面量屬性加不加引號的區別

admin發表於2018-02-08

物件直接量,也可以叫做物件字面量,看如下程式碼:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  webName:"螞蟻部落",
  url:"softwhy.com",
  age:2
}

上面是一個最簡單的物件直接量的程式碼,屬性沒有引號,當然也可以帶引號,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  "webName":"螞蟻部落",
  "url":"softwhy.com",
  "age":2
}

帶引號和不帶引號是有所區別的,下面做一下簡單介紹:

(1).ES5中,保留字可以用作不帶引號的屬性名稱,但ES3中,使用保留字作為屬性名稱則必須帶引號。

(2).當屬性名稱是不合規範命名的時候,不使用引號會報錯,看如下程式碼:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  5ai:"螞蟻部落"
}

上面的程式碼會報錯,但如果加上引號就不會報錯了,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  "5ai":"螞蟻部落"
}

對於這種不合法的屬性命名,訪問的時候不能夠用點,必須要用中括號,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  "5ai":"螞蟻部落"
}
console.log(obj["5ai"]);

相關文章