var myJSON = JSON.stringify(obj);
结果将是遵循 JSON 表示法的字符串。
输出 json文本 {“name”:“Bill”,“age”:62,“city”:“Seatle”}
(10)Date.now() 的返回与在 Date 对象上执行 getTime() 的结果相同。
(11)属性 Getter
和 Setter
ES5 允许您使用类似于获取或设置属性的语法来定义对象方法。
var person = {
firstName: “Bill”,
lastName : “Gates”,
language : “NO”,
get lang() {
return this.language;
},
set lang(value) {
this.language = value;
}
};
// 使用 setter 设置对象属性:
person.lang = “en”;
// 使用 getter 显示来自对象的数据:
document.getElementById(“demo”).innerHTML = person.lang;
(12)新的对象属性和方法Object.defineProperty()
它允许您定义对象属性和/或更改属性的值和/或元数据
// 创建对象:
var person = {
firstName: “Bill”,
lastName : “Gates”,
language : “NO”,
};
// 更改属性:
Object.defineProperty(person, “language”, {
value: “EN”,
writable : true,
enumerable : false,
configurable : true
});
// 枚举属性
var txt = “”;
for (var x in person) {
txt += person[x] + “
”;
}
document.getElementById(“demo”).innerHTML = txt;// Bill,Gates
language属性的enumerable : false,不能被枚举
ES5 新的对象方法
// 添加或更改对象属性
Object.defineProperty(object, property, descriptor)
// 添加或更改多个对象属性
Object.defineProperties(object, descriptors)
// 访问属性
Object.getOwnPropertyDescriptor(object, property)
// 将所有属性作为数组返回
Object.getOwnPropertyNames(object)
// 将可枚举属性作为数组返回
Object.keys(object)
// 访问原型
Object.getPrototypeOf(object)
// 防止向对象添加属性
Object.preventExtensions(object)
// 如果可以将属性添加到对象,则返回 true
Object.isExtensible(object)
// 防止更改对象属性(而不是值)
Object.seal(object)
// 如果对象被密封,则返回 true
Object.isSealed(object)
// 防止对对象进行任何更改
Object.freeze(object)
// 如果对象被冻结,则返回 true
Object.isFrozen(object)
(13)charAt() 方法返回字符串中指定索引(位置)的字符
var str = “HELLO WORLD”;
str.charAt(0); // 返回 H
str[0]; // 返回 H
(14)ECMAScript 5 允许在对象和数组定义中使用尾随逗号,JSON 不允许使用尾随逗号。
(15)如果使用反斜杠转义,ECMAScript 5 允许多行的字符串文字(字面量):
"Hello \
Kitty!";
\ 方法可能没有得到普遍的支持。一般使用+
"Hello " +
“Kitty!”;
(16)ECMAScript 5允许保留字作为属性名称:
var obj = {name: “Bill”, new: “yes”}