Js-w3school(2020.2.6)【ES5的变动】

(1)这些是 2009 年发布的新特性:

•	"use strict" 指令
•	String.trim()
•	Array.isArray()
•	Array.forEach()
•	Array.map()
•	Array.filter()
•	Array.reduce()
•	Array.reduceRight()
•	Array.every()
•	Array.some()
•	Array.indexOf()
•	Array.lastIndexOf()
•	JSON.parse()
•	JSON.stringify()
•	Date.now()
•	属性 Getter 和 Setter
•	新的对象属性和方法

(2)ECMAScript 5 语法更改
• 对字符串的属性访问 [ ]
• 数组和对象字面量中的尾随逗号
• 多行字符串字面量
• 作为属性名称的保留字
(3)“use strict” 定义 JavaScript 代码应该以“严格模式”执行。
(4)String.trim() 删除字符串两端的空白字符。
(5)Array.isArray() 方法检查对象是否为数组。
(6)Array.forEach() 方法为每个数组元素调用一次函数。
(7)Array.map()、Array.filter()、Array.reduce()、Array.reduceRight()、Array.every()、. Array.some()、Array.indexOf()、Array.lastIndexOf()等也是
(8)JSON.parse()
JavaScript 函数 JSON.parse() 用于将文本转换为 JavaScript 对象:

var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');

(9)JSON.stringify()
我们在 JavaScript 中有这个对象:

var obj = {"name":"Bill", "age":62, "city":"Seatle"};

请使用 JavaScript 函数 JSON.stringify() 将其转换为字符串。

var myJSON = JSON.stringify(obj);

结果将是遵循 JSON 表示法的字符串。
输出 json文本 {“name”:“Bill”,“age”:62,“city”:“Seatle”}
(10)Date.now() 的返回与在 Date 对象上执行 getTime() 的结果相同。
(11)属性 GetterSetter
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] + "<br>";
}
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"}
发布了41 篇原创文章 · 获赞 4 · 访问量 1632

猜你喜欢

转载自blog.csdn.net/mus123/article/details/104200195
今日推荐