es6的一些知识点】的更多相关文章

es6的一些知识点 前言:es6(ECMAscript2015)标准 let.const.var的一些区别 let.const 块级作用域.全局作用域.函数作用域 var 全局作用域.函数作用域 变量提升的问题: var : true let.const : false 例子: console.log(a);//undefind let a=1: 块级作用域:例如在一个函数,for循环...区块之内! const 常量,值不可更改. let.var 变量,值可以更改 严格模式 消除Javascr…
越来越多的开源库开始使用ES2015来构建代码了,大家知道ES6=ES2015,ES6在2015年被ECMAScript标准化组织approve,各大浏览器厂商要完全支持ES6的强大功能还须一些时日,对于喜爱新尝试的同学难道只有干等吗?幸运的是有了babel,traceur等transpiler的帮助,我们根本不用等待浏览器原生支持ES6才开始使用新技术了!其实babel做的事情很简单,他就是把es6的代码转换成浏览器认识的ES5代码.简单举一个例子,比如ES6中引入的语言原生支持模块的关键字i…
Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制, 可以对外界的访问进行过滤和改写.Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”. ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例. var proxy = new Pro…
1.Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [, , , , , , ].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化. // 例一 , , ,…
防止属性名的冲突.这就是 ES6 引入Symbol的原因. 它是 JavaScript 语言的第七种数据类型,前六种是:undefined.null.布尔值(Boolean).字符串(String).数值(Number).对象(Object). var s1 = Symbol('foo'); var s2 = Symbol('bar'); s1 // Symbol(foo) s2 // Symbol(bar) s1.toString() // "Symbol(foo)" s2.toSt…
1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. function f(x, y) { return {x, y}; } // 等同于 function f(x, y) { return {x: x, y: y}; } f(, ) // Object {x: 1, y: 2} var o = { method() { return "Hello!"; } }; // 等同于 var o = { method: function() { r…
引自http://es6.ruanyifeng.com/#docs/array 1.扩展运算符(...) 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. 该运算符主要用于函数调用. function push(array, ...items) { array.push(...items); } function add(x, y) { return x + y; } , ]; add(...numbers) 替代数组的 appl…
函数参数的默认值 作用域 ; function f(x, y = x) { console.log(y); } f() let x = ; function f(y = x) { let x = ; console.log(y); } f() ; function foo(x, y = function() { x = ; }) { ; y(); console.log(x); } foo() x ; function foo(x, y = function() { x = ; }) { x =…
引自:http://es6.ruanyifeng.com/#docs/number 1.Number.isFinite(),Number.isNaN() Number.isFinite(); // true Number.isFinite(NaN); // false Number.isFinite(Infinity); // false Number.isFinite('foo'); // false Number.isFinite(true); // false Number.isNaN(N…
引自:http://es6.ruanyifeng.com/#docs/string#codePointAt codePointAt() String.fromCodePoint() at() includes(),startsWith(),endsWith() repeat() padStart(),padEnd() 模板字符串 模板编译 1.codePointAt() codePointAt方法的结果与charCodeAt方法相同. 总之,codePointAt方法会正确返回32位的UTF-1…