谈一谈点操作符和中括号操作符
对对象属性进行操作的时候,有两种方式点操作符
、中括号操作符。
-
点操作符: 成员访问。
obj.XXX
: 只能把XXX当做字符串使用,并且不能是非法字符 。 -
中括号操作符: 中括号操作符完全随时可以使用。
如果有一个属性名是 XXX,因为属性名是字符串类型,则获取方式为
obj["XXX"]
。使用中括号的场景:
- key 是非法的 比如
obj["XXX-xxx"];
- key 是一个变量
var a = "name" obj[a];
- key 是非法的 比如
创建对象的两种方法 及 对象的增删改查
创建对象:
- 字面量的方法
var o = {};
。 - 实例化的方式创建
var o = new Object();
。
对象的增、删、改、查:
- 增: 添加一个属性进去
obj.XXX=XXX;
。 - 删:
delete obj.XXX;
。 - 改: 覆盖原有的属性
obj.XXX=XXX;
。 - 查: 获取
obj.XXX
返回当前对象的XXX属性。
谈一谈作用域链
- 作用域链: 保证对
当前执行环境
有权访问的所有变量和函数
的有序访问。 - 当函数声明的时候,就已经确定了作用域链,但是因为这个函数没有被调用,所以函数内部的变量对象没有生成,作用域链并没有完整。
- 当函数执行的时候,创建了自己的变量对象,并推到了作用域链的最前端,形成完整的作用域链。
- 作用域链的最前端一定是自身的执行环境的变量对象,作用域链的末端一定是全局的变量对象。
- 标识符的解析是沿着作用域链一级一级寻找的过程,如果寻找不到,则会报错。