JavaScript标准参考教程读书笔记(阮一峰)-对象
作者:
是刘快啊 | 来源:发表于
2018-03-25 01:43 被阅读0次
1.概述
1.1 生成方法
- 对象(object)是JavaScript语言的核心概念,也是最重要的数据类型;
- 对象:一组“键值对”(key-value)的集合,一种无序的复合数据集合;
- 键值对:又称对象内的“成员”,键名、键值用冒号分开,键值对之间用逗号分开。
1.2 键名
- 对象的键名都是字符串,加不加引号都可以;(ES6引入Symbol值也可作键值)
- 如果是数值,自动转为字符串;
- 如果不符合标识符条件(第一个字符为数字,或者含有空格或运算符),且也不是数字,必须加引号,否则报错;
- 属性(property):键名又称“属性”,它的键值可以是任何数据类型;
- 方法:一个属性的值为函数,把这个属性成为“方法”,可以像函数那样调用;
- 如果属性的值还是一个对象,就形成了链式引用;
- 属性可以动态创建。
1.3 对象的引用
- 不同变量名指向同一个对象,他们都是这个对象的引用,指向同一个内存地址,修改一个变量,会影响其他变量;
- 这种引用只局限于对象。
不同变量指向同一个原始类型的值,变量这时都是值的拷贝,不是指向同一个内存地址。
1.4 表达式还是语句?
- 行首是大括号,语句(即代码块);
- 大括号前加圆括号,表达式(对象)。
2.属性的操作
2.1 读取属性
- 点运算符
- 方括号运算符
- 使用方括号,键名必须放在引号里,否则当变量处理;
- 方括号内部可以使用表达式;
- 数字键可以不加引号,自动转成字符串;
- 数值键名不能用点运算符(被当作小数点)。
2.2 属性的赋值
- JavaScript允许“后绑定”;
- 点运算符和方括号运算符既可以用来读取属性,也可以用来赋值。
2.3 查看所有的属性
2.4 delete命令
- 用于删除对象的属性,删除成功后返回true;
- 删除不存在的属性,不报错,返回true;
- 只有一种情况返回false:属性存在,且不得删除;
- 只能删除对象本身属性,无法删除继承的属性。
2.5 in运算符
- 用于检查对象是否包含某个属性(键名),返回true/false;
- 不能识别哪些属性是自身的,哪些是继承的。
2.6 for…in循环
- 用来遍历一个对象的全部属性;
- 遍历可遍历(enumberable)的属性,跳过不可遍历的属性;
- 不仅遍历自身属性,还遍历继承的属性;
- 结合使用
hasOwnProperty
方法,在循环内部判断某个属性是否为对象自身的属性。
3.with语句
- 作用:操作同一个对象的多个属性时,提供一些书写方便;
- with区块没有改变作用域,它的内部依然是当前作用域;
如果with区块内部有变量赋值操作,必须是当前对象已经存在的属性,否则会创造一个当前作用域的全局变量;
- 建议不使用with语句(不利于代码除错和模块化,编译器也无法对这段代码进行优化),可以用一个临时变量代替with。
本文标题:JavaScript标准参考教程读书笔记(阮一峰)-对象
本文链接:https://www.haomeiwen.com/subject/koaccftx.html
网友评论