变量和对象
原始类型:number、string、boolean、null、undefined
引用类型:object、function 函数
在变量中存放对象
- 通过变量,读取对象中的某个属性
变量名.属性名
当读取的属性不存在时,会得到undefined
当读取属性的对象不存在(undefined 或 null)时,程序报错
- 通过变量,更改对象中的某个属性
当赋值的属性不存在时,会添加属性
- 删除属性和添加属性
//添加
变量名.属性名="属性值"
// 删除
delete 变量名.属性名;
- 属性表达式
给属性赋值,或读取属性时,可以使用下面的格式操作
对象变量["属性名"]
- 某些属性名中包含特殊字符
实际上,JS对属性名的命名要求并不严格,属性可以是任何形式的名字
属性的名字只能是字符串,如果你书写的是数字,会自动转换为字符串
全局对象
JS大部分的宿主环境,都会提供一个特殊的对象,该对象可以直接在JS代码中访问,该对象叫做全局对象
在浏览器环境中,全局对象为window,表示整个窗口
全局对象中的所有属性,可以直接使用,而不需要写上全局对象名。
开发者定义的所有变量,实际上,会成为window对象的属性。
如果变量没有被赋值,则该变量不会覆盖window对象上的同名属性。
// 测试题
var obj2 = {};
obj2[0] = "123";
obj2["0"] = "234";
// 问以下输出的值是多少?
console.log(obj2[0], obj["0"]);
// 234 234 因为两个值是一样的