《深入理解JavaScript》—— ECMAScript5 新特性

(1) 标准库的新功能

1. 元编程

① 获取和设置原型

—— Object.create()

—— Object.getPrototypeOf()

② 通过属性描述符管理属性特性

—— Object.defineProperty()

—— Object.defineProperties()

—— Object.create()

—— Object.getOwnPropertyDescriptor()

③ 列出属性

—— Object.keys()

—— Object.getOwnPropertyNames()

④ 保护对象

—— Object.preventExtensions()

—— Object.isExtensible()

—— Object.seal()

—— Object.isSealed()

—— Object.freeze()

—— Object.isFrozen()

(2) 新方法

① 新方法 String.prototype.trim()

② 通过方括号访问字符

③ 新数组方法

—— Array.isArray()

—— Array.prototype.every()

—— Array.prototype.some()

—— Array.prototype.filter()

—— Array.prototype.forEach()

—— Array.prototype.indexOf()

—— Array.prototype.lastIndexOf()

—— Array.prototype.map()

—— Array.prototype.reduce()

④ 新Date方法

—— Date.now()

—— Date.prototype.toISOString()

(3) JSON

支持JSON。

—— JOSN.parse()

—— JOSN.stringify()

—— 一些内建对象具有特殊的toJSON方法:

Boolean.prototype.toJSON()

Number.prototype.toJSON()

String.prototype.toJSON()

Date.prototype.toJSON()

时间: 2024-10-12 12:07:59

《深入理解JavaScript》—— ECMAScript5 新特性的相关文章

(转)深入理解JavaScript的闭包特性 如何给循环中的对象添加事件

深入理解JavaScript的闭包特性如何给循环中的对象添加事件 初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript的闭包特性. 有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4. 1.  <!DOCTYPE HTML> 2.  <html> 3.  <head&g

深入理解JavaScript的闭包特性如何给循环中的对象添加事件

初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript的闭包特性. 有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4. 1.  <!DOCTYPE HTML> 2.  <html> 3.  <head> 4.  <meta charset="utf

深入理解JavaScript的闭包特性 如何给循环中的对象添加事件

初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript的闭包特性. 有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4. <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> &

javascript ES6 新特性之 扩展运算符 三个点 ...

对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() 方法,我们先来看一下 Object.assign() 方法: Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象.如下: const target = { a: 1, b: 2 }; const source = { b: 4, c: 5

JavaScript ECAMScript5 新特性——get/set访问器

之前对get/set的理解一直有误,觉得get set 是对象属性方法.看了别人的博客也有很多疑问,今天系统的做了很多测试终于弄明白了.(自己通过看书和写demo测试的,如有不对欢迎大家批评指正) get/set访问器不是对象的属性,而是属性的特性.大家一定要分清楚.特性只有内部才用,因此在javaScript中不能直接访问他们.为了表示特性是内部值用两队中括号括起来表示如[[Value]].  1.先简单介绍一下属性的这些特性(这里是简单的背书)          (1)数据属性——包含一个数

JavaScript 的新特性:类的 #private 字段

这是什么,如何使用,为什么需要? 一边听"Noise Pollution" -- Portugal. The Man,一边阅读本文简直就是享受 JavaScript 标准的第二阶段(Stage 2)加入了类私有字段.它还没有最终确定,但 JavaScript 标准委员会认为这个特性会被开发出来并最终纳入标准(虽然它可能还会改变) 它的语法(当前)看起来像这样: 1 class Point { 2 **#x;** 3 **#y;** 4 5 constructor(x, y) { 6 *

ECMASCRIPT5新特性(转载)

Function 1: Object.create 这是一个很重要的改动,现在我们终于可以得到一个原型链干净的对象了.以前要创建一个类 Js代码   function Cat(name) { this.name   = name; this.paws   = 4; this.hungry = false; this.eaten  = []; } Cat.prototype = { constructor : Cat, play        : function () { this.hungry

JavaScript数组新特性

1 <!DOCTYPE html> 2 2 <html lang="en"> 3 3 <head> 4 4 <meta charset="UTF-8"> 5 5 <title>test1</title> 6 6 <script> 7 7 8 94 9 95 /* 10 96 11 97 every,some 前者是遍历数组中的每一个元素,并执行函数运行,如果有一个返回false则返回

javascript ES6 新特性之 let

let的作用是声明变量,和var差不多. let是ES6提出的,在了解let之前,最好先熟悉var的原理. JavaScript有一个机制叫“预解析”,也可以叫“提升(Hoisting)机制”.很多刚接触JavaScript的人都会被这个机制弄混.比如: // var 的情况 console.log(a); // 输出undefined var a = 2; 在预编译阶段,JavaScript引擎会将上面的a函数修改成下面的写法: var a; //声明且初始化为undefined consol