ECMA Script 6_ 类 class】的更多相关文章

类 class ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板. 通过 class 关键字,可以定义类 class 新的 class 写法只是让对象原型的写法更加清晰.更像面向对象编程的语法而已 类的所有方法都定义在类的 prototype 属性上面,constructo() 也是类原型的 constructor() class Point { constructor(x, y) { /* 构造方法,实例 = new 类 */ this.x = x; thi…
1. 模块加载方案 commonJS 背景: 历史上,JavaScript 一直没有模块(module)体系, 无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来. 其他语言都有这项功能: Ruby 的require Python 的import 甚至就连 CSS 都有@import 但是 JavaScript 任何这方面的支持都没有,这对开发大型的.复杂的项目形成了巨大障碍 在 ES6 之前,社区制定了一些模块加载方案,最主要的有: CommonJS     用于服务器 AMD …
1. 扩展运算符 内部调用的是数据结构的 Iterator 接口, 因此只要具有 Iterator 接口的对象,都可以使用扩展运算符 ... 如 map,,,, [...arr] 扩展运算符(spread)是三个点(...) 将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]); // 1 2 3 console.log(1, ...[2, 3, 4], 5); // 1 2 3 4 5 [...document.querySelectorAll('div')]…
ECMAScript 6 ECMA 组织 前身是 欧洲计算机制造商协会 指定和发布脚本语言规范,标准在每年的 6 月份正式发布一次,作为当年的正式版本 这样一来,就不需要以前的版本号了,只要用年份标记就可以了. ES6 ES6 既是一个历史名词,也是一个泛指“下一代 JavaScript 语言”, 含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015.ES2016.ES2017 等等, 而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准 一种新的语法从…
对象 1. ES6 允许直接写入变量和函数,作为对象的属性和方法 const foo = 'bar'; /*****************属性的优化********************/ const baz = {foo: foo}; // 优化为 const baz = {foo}; /*****************属性的优化********************/ function f(x, y) { return {x: x, y: y}; }; // 优化为 function…
1. 二进制 和 八进制 新的表示法 前缀 0b(或0B) 表示 二进制 前缀 0o(或 0O )表示 八进制 console.log(0b111110111 === 503); // true console.log(0o767 === 503); // true 如果要将 0b 和 0o 前缀的字符串数值 转为十进制,要使用 Number() 方法 2. Number.isFinite() 检查一个数值是否为有限的(finite),即 不是 Infinity 返回 true 只对数值有效 如…
Promise 对象 异步编程 方案,已同步的方式表达异步的代码,解决回调地狱的问题 比传统的解决方案——回调函数和事件——更合理和更强大 是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果. 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理 基本使用 const promise = new Promise(function(resolve, reject) { // ... s…
ES6 为了保持兼容性,var 命令和 function 命令声明的全局变量,依旧是顶层对象的属性: 另一方面规定,let 命令.const 命令.class 命令声明的全局变量,不属于 window 的属性. 也就是说,从ES6开始,全局变量将逐步与顶层对象的属性脱钩 浏览器顶层对象指的是 window 对象 Node顶层对象指的是 global 对象,但其他环境都不支持 window 对象应该有实体含义,指的是浏览器的窗口对象 为了能够在各种环境,都能取到顶层对象,现在一般是使用 this变…
解构赋值 从数组中提取值,按照对应位置,对变量赋值 只要等号右边的值不是对象或数组,就先将其转为对象. 由于 undefined 和 null 无法转为对象,所以对它们进行解构赋值,都会报错 let [a, b, c] = [1, 2, 3]; 只要某种数据结构具有 Iterator 接口,都可以采用数组形式的解构赋值 应用: const person = { name: 'RyenToretto', age: 22, sex: '男' }; // 解构赋值 const {name, age,…
ES6 字符串扩展 ES6 加强了对 Unicode 的支持,并且扩展了字符串对象 字符 的 Unicode 表示法 允许采用 \uxxxx 形式表示一个字符, 其中 xxxx 表示字符的 Unicode 码点 这种表示法只限于码点在 \u0000 ~ \uFFFF 之间的字符. "\u0061"    // "a" 超出这个范围的字符,必须用两个双字节的形式表示 "\uD842\uDFB7"    // "…