獲取對象屬性的點方法和中括號法的區別


轉行干前端也有一段時間了,閑暇之余來復習一下原生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的關鍵字和保留字作為屬性名,而點語法不可以(盡量避免在變量或者屬性中使用關鍵字或保留字);

好了,先這么多吧,有錯誤的地方希望大家指正;

<--轉載請注明,謝謝!-->


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM