赞
踩
可以通过new Object(), Object.create()方法,或者使用字面量标记(初始化标记)初始化对象。 一个对象初始化器,由花括号/大括号 ({}) 包含的一个由零个或多个对象属性名和其关联值组成的一个逗号分隔的列表构成。
JS对象中属性名是不允许重复的,是唯一的
练习题
let person={ name="张三", age:30, height:"185CM", weight:"80KG", 1:100 }; // 获取属性名对应的属性值 console.log(person.name);//=>"张三" console.log(person["age"]);//=>"30" console.log(person.sex);//=>undefined console.log(person[1]);//=>100 console.log(person.1);//=>SyntaxError:语法错误 //设置属性名属性值 person.GF = "韩梅梅"; person.name="李雷" console.log(person.GF); //"韩梅梅" console.log(person.name); //"李雷" //删除属性 // =>真删除 delete person[1] // =>假删除 person.name = null; var o = new Object(); var o = new Object(undefined); var o = new Object(null); var o = new Object(true);// 等价于 o = new Boolean(true); var o = new Object(Boolean());// 等价于 o = new Boolean(false);
Object 构造函数的方法只能通过Object.xxx()调用。和对象的实例没有直接的关系,(Object.prototype === 实例.__proto__)
var o = {};
Object.defineProperty(o, 'a', {
get() { return 1; },
configurable: false
});
所有 NaN 值都相等(这与==
和===
不同)。
==
运算不同。 ==
运算符在判断相等前对两边的变量(如果它们不是同一类型) 进行强制转换 (这种行为的结果会将 “” ==
false 判断为 true), 而 Object.is不会强制转换两边的值。===
运算也不相同。 ===
运算符 (也包括 ==
运算符) 将数字 -0 和 +0 视为相等 ,而将Number.NaN 与NaN视为不相等.Object.is(Number.NaN, Number.NaN);// true
if (!Object.is) {
Object.is = function(x, y) {
if (x === y) {
return x !== 0 || 1 / x === 1 / y;
} else {
return x !== x && y !== y;
}
};
}
// simple array
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
// array like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']
var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
var obj = {};
var a = Symbol("a");
var b = Symbol.for("b");
obj[a] = "localSymbol";
obj[b] = "globalSymbol";
var objectSymbols = Object.getOwnPropertySymbols(obj);
console.log(objectSymbols.length); // 2
console.log(objectSymbols) // [Symbol(a), Symbol(b)]
console.log(objectSymbols[0]) // Symbol(a)
o = new Object();
o.prop = 'exists';
o.hasOwnProperty('prop'); // 返回 true
o.hasOwnProperty('toString'); // 返回 false
o.hasOwnProperty('hasOwnProperty'); // 返回 false
返回对象的字符串表示。
本文只总结了常用的方法,想要了解更过的对象和实例的方法,查询 MDN-Object
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。