对象的属性读写: 1.获取属性值 ①对象名.属性名 例子: var obj = { 'userName':'李白', 'sex':'男', 'hobby':['下棋','写诗','画画'] } var result = obj.hobby; console.log(result);//["下棋", "写诗", "画画"] ②对象名[属性名] var result = obj['sex']; console.log(result);//男 2.给对象属性赋值 ①更改属性值 obj.userName='杜甫'; obj['userName']='杜牧'; console.log(obj); ②添加属性 obj.height = 180; obj['weight'] = '90kg'; console.log(obj);
3.当下标超过数组 字符串 范围 或者 对象调用不存在的属性时 都返回 undefined var obj = { 'userName':'李白', 'sex':'男', 'hobby':['下棋','写诗','画画'] }; var a = 'abcdef'; var arr = [1,2,3,4,5]; console.log(a[12]);//undefined console.log(arr[11]);//undefined console.log(obj.height);//undefined
[]运算符 与.运算符区别? 1.中括号运算符可以使用字符串变量 作为属性名 但是 .运算符不行 console.log(obj.str);//undefined console.log('[]',obj[str]);//[] 安琪拉 2.点运算符可以使用js中的关键字作为属性 而【】不行 obj.var=90; obj[var]=90; console.log(obj.var);//90 console.log(obj[var]);//报错 SyntaxError: expected expression, got keyword 'var' 3.[]运算符可以使用纯数字作为属性 而 .运算符不可以 obj.11="22"; obj[11]="22"; console.log(obj.11);//报错 SyntaxError: unexpected token: numeric literal console.log(obj[11]);//22