
JavaScriptES6.0
文章平均质量分 69
c-Tomorrow
如果你能力撑不起野心的时候,那么就应该静下心来好好学习了。
展开
-
JavaScriptES6--let、const、块级作用域
在JavaScript语言史中,ES6.0阶段也是JavaScript进阶的一个大阶段,产生了很多新的知识和新的语法规定。 let 在ES6中出现了let命令,其语法类似于var,用于声明变量,但是所声明的变量只能在let声明的代码块内有效。 上面这句话是什么意思呢,我们来说一下。 在ES6中引入了块级作用域的特点,我们知道每...原创 2018-04-05 12:26:08 · 351 阅读 · 0 评论 -
JavaScriptES6对象的Object.getOwnPropertyDescriptors方法理解
上一个博客提到了Object.getOwnPropertyDescriptor方法会返回某个对象属性的描述对象。ES2017引入了Object.getOwnPropertyDescriptors方法。返回值为对象所有自身属性(非继承属性)的描述对象。const obj = { a : 1, foo(){}, get bar(){ return 1...原创 2018-08-12 21:52:35 · 1145 阅读 · 0 评论 -
JavaScriptES6对象的__proto__属性,Object.setPrototypeOf,Object.getPrototypeOf
目录 __proto__属性Object.setPrototypeOf()Object.getPrototypeOf()__proto__属性__proto__属性(前后各两个下划线),用来读取或设置当前对象的prototype对象。目前,所有浏览器(包括 IE11)都部署了这个属性。该属性没有写入 ES6 的正文,而是写入了附录,原因是__proto__前后的双下划线,说...原创 2018-08-13 12:52:38 · 898 阅读 · 0 评论 -
JavaScriptES6对象的super关键字
我们知道,this关键字总是指向函数所在的当前对象,ES6又新增了另一个类似的关键字super,指向当前对象的原型对象。const proto = { foo : "hello",};const obj = { foo : "world", find(){ console.log(this.foo); }, finds(){...原创 2018-08-13 12:59:17 · 2656 阅读 · 0 评论 -
JavaScriptES6对象的Object.key, Object.values, Object.entries
目录 Object.key()Object.values()Object.entries()Object.key()在ES5中,就引入了Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。let obj = { foo : "bar", baz : 18,}console.l...原创 2018-08-13 13:13:02 · 34839 阅读 · 1 评论 -
JavaScriptES6之独一无二的Symbol
目录作为属性名的Symbol实例:消除魔术字符串Symbol类型属性名的遍历Symbol.for() Symbol.keyFor()Symbol是一个原始数据类型,表示独一无二的值,也就是说Symbol类型的值只要创建就是唯一的。它是JavaScript语言的第七种数据类型,前六种:undefined、null、Boolean、String、number、Object。Sy...原创 2018-08-20 16:10:48 · 820 阅读 · 0 评论 -
JavaScriptES6内置的Symbol值
除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法。目录Symbol.hasInstanceSymbol.isConcatSpreadableSymbol.speciesSymbol.matchSymbol.replaceSymbol.searchSymbol.splitSymbol.iteratorSym...原创 2018-08-20 16:47:00 · 1595 阅读 · 0 评论 -
JavaScriptES6的Set与WeakSet
目录Set基本用法Set实例的属性和方法遍历方法及应用WeakSet含义语法WeakSet结构的三个方法。Set基本用法 ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构。const s = new Set();[2,3,5,4,2,3].forEach((x) ...原创 2018-08-29 14:22:13 · 1823 阅读 · 0 评论 -
JavaScriptES6Map与WeakMap
目录 Map含义与用法实例的属性和操作方法遍历方法WeakMap含义WeakMap的语法WeakMap的用途Map含义与用法 JavaScript的对象,本质上是键值对的集合(hash结构),但是传统上只能用字符串作为建,这有了很大的限制。const data = {};const element = document.getElements...原创 2018-08-29 14:46:44 · 6339 阅读 · 0 评论 -
JavaScriptES6对象之属性的可枚举性及遍历详解
目录 可枚举性属性的遍历可枚举性对象的每个属性都有一个描述对象,用来控制该属性的行为,Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。描述对象的enumerable属性,称为可枚举性,如果为true,为可枚举的,如果为false,就表示某些操作会忽略当前属性。let obj = { foo :1};console.log(Ob...原创 2018-08-12 20:25:52 · 2803 阅读 · 0 评论 -
JavaScriptES6对象的Object.is和Object.assign方法详解
目录 Object.is()Object.assign()Object.is()ES5比较两个值是否相等,只有两个运算符:相等运算符(===)和严格运算符(===)。他们都有缺点,前者会自动转换数据类型,后者NaN不等于自身,以及 +0 等于-0,JavaScript缺乏一种运算,在所有环境中,只要两个值一样的,它们就应该相等。ES6提出同值相等算法,用来解决这个问题。Ob...原创 2018-08-12 14:55:09 · 997 阅读 · 0 评论 -
JavaScriptES6对象之属性简洁表达式及属性名表达式
ES6中对象的字面量是发生了翻天覆地的变化,变得非常简便目录属性简洁表达式属性名表达式方法的name属性属性简洁表达式ES6中允许使用变量来作为属性和方法,书写更简便。const foo = "bar";const baz = { foo,}console.log(baz); {foo:"bar"}//等同于const baz = {foo :...原创 2018-08-12 00:02:50 · 4746 阅读 · 0 评论 -
JavaScriptES6之顶层对象、global对象
顶层对象的属性 顶层对象,在浏览器环境指的是window对象,在Node中指的是global对象。ES5中顶层对象和全局变量是等价的,全局变量对编程者来说造成了很大的麻烦,因为一个疏忽,就把变量泄露到为了全局,全局变量的属性到处都是可读可写的,非常不利于模块化编程。 ES6为了完善这一点,同时为了保持兼容性,由var ,function 定义全局变量依旧...原创 2018-04-05 12:37:51 · 4586 阅读 · 0 评论 -
JavaScriptES6之解构赋值及其用途
目录 1.数组的解构赋值 2.对象的解构赋值3.字符串的解构赋值4.数值与布尔值的解构赋值5.函数参数的结构赋值6.解构赋值中的圆括号问题7.解构赋值的用途1.数组的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。 在ES5之前,为变量赋值,只能直接指定值。let a ...原创 2018-08-05 00:43:09 · 1706 阅读 · 1 评论 -
JavaScriptES6数组的扩展运算符详解
ES6中新增了许多数组的方法以及数组的新特性目录扩展运算符扩展运算符的作用扩展运算符扩展运算符是三个点,它好比rest参数的逆运算,作用是将一个数组转为用逗号分隔的参数序列。console.log(...[1,2,3]);//该运算符主要用于函数调用 function push(arr,...item){ arr.push(...item); co...原创 2018-08-09 14:16:03 · 936 阅读 · 0 评论 -
JavaScriptES6数组的方法
目录 Array.from()Array.of()数组实例的copyWithin()数组实例的find()和findIndex()数组实例的fill()数组的实例 entries(),keys()和values()数组实例的includes()Array.from()Array.from方法用于将两类对象转为真正的数组,类似数组的对象和可遍历的对象,也包括E...原创 2018-08-09 15:13:28 · 557 阅读 · 0 评论 -
JavaScriptES6字符串拓展
JavaScriptES6上新增了很多字符串的方法。目录includes()startsWith()endsWith()repeat()padStart()、padEnd()模板字符串标签模板String.raw在以前版本中也有查找的方法,比如说indexOf(),就可以查找是否含有,但是这个方法返回的索引位,当找不到的时候返回的是-1,显然是很麻烦的。...原创 2018-08-06 14:20:37 · 837 阅读 · 0 评论 -
JavaScriptES6函数的扩展
ES6中的函数相当于前面的版本发生了翻天覆地的变化。目录函数的默认值解构赋值与默认值结合使用参数默认值的位置函数的length属性作用域参数默认值和独立作用域的应用rest参数严格模式name属性函数的默认值ES6允许为函数的参数设置默认值,即直接写在形参定义的后面function log(x,y = 'World'){ console...原创 2018-08-06 21:26:27 · 495 阅读 · 0 评论 -
JavaScriptES6箭头函数
ES6允许使用箭头(=>)定义函数var f = v => v;//等同于var f = function(v){ return v;}如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;console.log(f());//相当于var f = function(){ return ...原创 2018-08-06 21:47:22 · 369 阅读 · 0 评论 -
JavaScriptES6函数的尾调用优化
什么是尾调用尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚。就是指某个函数的最后一步是调用另一个函数。 function g(x){ console.log(x);} function f(x){ return g(x); } console.log(f(1));//上面代码中,函数f的最后一步是调用函数g,这就是尾调...原创 2018-08-06 22:06:07 · 1443 阅读 · 0 评论 -
JavaScriptES6中Map与对象、数组,JSON之间的相互转换
目录 Map转为数组数组 转为 MapMap 转为对象对象转为 MapMap 转为 JSONJSON 转为 Map主页传送门Map转为数组const map = new Map();map.set(1,"foo").set(2,"bar").set(3,"baz");const arr = [...map];console.log(arr);数组...原创 2018-08-29 14:53:18 · 33457 阅读 · 1 评论