轉行干前端也有一段時間了,閑暇之余來復習一下原生js,總結一下碰到的一些疑問或者問題,我是小白,有不到位之處請指正;
不廢話,一般訪問對象的屬性,我們可以用點方法或者中括號法來獲取,簡單實例如下:
var obj = {'name':'張三','age':'18'}; var getName = obj.name;//點方法 var getAge = obj['age'];//中括號法 console.log(getName);//打印結果:張三 console.log(getAge);//打印結果:18
直到昨天,同學A問我一個問題,給了我一個json對象,然后我就開始有這個疑問如下:
var obj = {'34':{ '可能錯誤原因':'無', '錯誤代碼':'D000', '錯誤位置':'接收方成員行(MEMBER)', '錯誤描述':'無', }};
應該有同學注意到了吧,有個屬性名是數字,這個時候用點語法就會報錯,用中括號就可以:
console.log(obj.34);//語法報錯 console.log(obj['34']);//正常獲取到;
所以說,點語法和中括號法還是有區別的,根據查資料,結論如下:
1、中括號法可以用變量作為屬性名,而點方法不可以;
var obj = {};
obj.name = '張三';
var myName = 'name';
console.log(obj.myName);//undefined,訪問不到對應的屬性
console.log(obj[myName]);//張三
2、中括號法可以用數字作為屬性名,而點語法不可以;
3、中括號法可以使用js的關鍵字和保留字作為屬性名,而點語法不可以(盡量避免在變量或者屬性中使用關鍵字或保留字);
好了,先這么多吧,有錯誤的地方希望大家指正;
<--轉載請注明,謝謝!-->