检索
要检索对象中半酣的值,可以采用[]后缀中括住一个字符窜表达的方式。如果字符串表达式是一个常数,而且它是一个合法的JavaScript标识符而并非保留字,那么也可以用表示法代替。优先考虑使用.表示法代替。优先考虑使用.表示法,因为它更紧凑且可读性更好。
stooge["first-name"] //"JOE"
flight.departure.IATA //"SYD"
参照上一篇文章:www.jianshu.com/writer#/notebooks/13739576/notes/14582287
如果你尝试检索一个并不存在的成员元素的值,将一个返回 undefined值。
stooge["middle-name"] //undefined
flight.status //undefined
stooge["FIRST-NAME"] //undefined
| |运算符可以用来填充默认值:
var middle = stooge["middle-name"] | | "{none}";
var status = flight.status | | "unknow";
尝试检索一个undefined值将会导致TypeError异常。这可以通过&&运算符来避免错误:
flight.equipment //undefined
flight.equipment.model //throw "TypeError"
flight.equipment && flight.equipment.model //undefined
当然,在这里推荐一下我自己的前端群:621071874,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货以及各种经典案例(包括此案例),包括我自己整理的一份2017最新的前端资料和零基础入门教程,同时,还会定期和大家共同讨论目前企业需求以及各类面试问题,欢迎初学和进阶中的小伙伴。
对象中的值可以通过赋值语句来更新。如果属性名已经存在对象中,那么这个属性值将被替换。
stooge['first-name'] = 'Jerome';
如果对象之前并没有拥有那个属性名,那么该属性就被扩充到该对象中。
stooge['middle - name'] = 'Lester';
stooge.nickname = 'Curly';
flight.equipment = {
model:'Boeing 777'
};
flight.status = 'overdue';
对象通过引用来传递。它们永远不会被拷贝:
var x = stooge;
x.nickname = 'Curly';
var nick = stooge.nickname;
//因为x和stooge是指向同一个对象的引用,所以nick为'Curly'
var a = {}, b = {}, c = {};
// a、b和c每个都引用过一个不同的空对象
a = b = c {};
//a、b和c 都引用同一个空对象。