JavaScript的简单类型包括
- 数字 number
JS不分整型与浮点型
两个浮点数相加,精度不够 - 字符串 String
- 布尔型 boolean
- null
- undefined
以上都是简单数据类型
其他都是对象Function Array
对象
- 对象是属性的容器。
- 属性都拥有名字和值,属性的值可以是出undefined之外的任何值。
- 对象是无类别的。
- 对象可以被继承。
- 对象可以嵌套
const xyy = {
name: 'xiyangyang',
hometown: 'yangcun',
"last-name": 'xi'
relation:{
father: "zhiyangyang",
mother: "liyangyang",
friend: "lanyangyang"
}
}
对象字面量
一个对象字面量就是包围在一个对花括号中的零个或多个“名/值”
属性名规范:
第一个字符必须是字母或下划线或$符号;
除了第一个字符后面的部分可以是字母、数字、下划线、美元符号;
如果除了第一个字符后面的部分有其他符号,必须要用引号扩住。
const xyy = {
name: 'xiyangyang',
hometown: 'yangcun',
"last-name": 'xi'
}
检索
- 对象名.属性名
- 对象名[“属性名”]、对象名[‘属性名’]
console.log(xyy); //{name:'xiyangyang',hometown: 'yangcun','last-name': 'xi'}
console.log(xyy.name); //xiyangyang
console.log(xyy['name']); //xiyangyang
console.log(xyy['last-name']); //xi
注意:引号扩住的属性名只能用第二种方式检索
更新
对象中的值可以通过赋值语句来更新。
如果属性名存在于对象中,属性名的值将会被替换;如果对象中不存在这个属性名,那么该属性将会扩充到该对象中。
引用
对象通过引用来传递。他们永远不会被拷贝。
var x = stooge;
x.nickname = 'Curly';
var nick = stooge.nickname
//x 和 stooge指向同一个地址,所以nick为'Curly'
//1. a,b,c 指向不同的地址
var a = {}, b = {}, c = {};
//2. a,b,c 指向同一个地址
var a = b = c = {};
原型
每个对象都连接到一个原型对象,并且可以从中继承属性。
所有通过对象字面量创建的对象都连接到Object.prototype。
原型关系是一种动态的关系。
枚举
for in:for in语句会遍历对象中的所有属性名。包括原型中的属性,一般采用hasOwnProperty方法过滤。并且属性名出现的顺序是不确定的。
for:for语句可以确保我们按顺序得到想要的属性。
删除
delete运算符可以删除对象的属性。他不会触及原型中的任何属性。
减少全局变量污染
只创建唯一一个全局变量作为应用的容器。
把多个全局变量都整理在一个名称空间下,减少其他应用、组件、类库之间的影响。
var MYAPP = {};
MYAPP.flight = {};
MYAPP.stooge = {};
MYAPP.arrival = {};