![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6+
ECMAScript6+分类专栏
Milk595
努力做自己喜欢做的事
展开
-
【ES2020】空值合并运算符 ‘??‘
空值合并运算符 ‘??’在本文中,我们将值既不是 null也不是undefined的表达式称为“已定义的(defined)”。空值合并运算符(nullish coalescing operator)的写法为两个问号 ??。a ?? b的结果是:如果 a 是已定义的,则结果为 a,如果 a不是已定义的,则结果为 b。换句话说,如果第一个参数不是null/undefined,则?? 返回第一个参数。否则,返回第二个参数。空值合并运算符并不是什么全新的东西。它只是一种获得两者中的第一个“已定义的”值转载 2020-10-16 10:08:16 · 1376 阅读 · 1 评论 -
【ES6】一文让你彻底理解Promise对象及其常用用法!!
Promise 对象1.Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。Promise对象有以原创 2020-08-11 22:49:05 · 223 阅读 · 0 评论 -
【ES6】rest 参数【简单易懂,快来看看吧】
rest 参数ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。function add(...values) { let sum = 0; for (var val of values) { sum += val; } return sum;}add(2, 5, 3) // 10上面代码的add函数是一个求和函数,利用 rest 参原创 2020-08-10 15:30:20 · 135 阅读 · 0 评论 -
【ES6】箭头函数this指向问题【看这一篇就够啦!】
箭头函数this指向箭头函数有4个使用注意点。(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。function fo原创 2020-08-10 14:57:14 · 2849 阅读 · 0 评论 -
【ES6】箭头函数【基础语法】
箭头函数基础语法ES6 允许使用“箭头”(=>)定义函数。var f = v => v;// 等同于var f = function (v) { return v;};如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;// 等同于var f = function () { return 5 };var sum = (num1, num2) => num1 + num2;// 等同于var sum =原创 2020-08-10 14:55:08 · 214 阅读 · 0 评论 -
【ES6】解构赋值的6个用途
用途变量的解构赋值用途很多。(1)交换变量的值let x = 1;let y = 2;[x, y] = [y, x];上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰。(2)从函数返回多个值函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。// 返回一个数组function example() { return [1, 2, 3];}let [a, b, c] = example();// 返原创 2020-08-07 16:53:57 · 312 阅读 · 0 评论 -
【ES6】字符串、函数解构赋值【简单易懂】
字符串的解构赋值字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。const [a, b, c, d, e] = 'hello';a // "h"b // "e"c // "l"d // "l"e // "o"类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。let {length : len} = 'hello';len // 5解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined和null无法转为对原创 2020-08-07 16:53:10 · 217 阅读 · 0 评论 -
【ES6】对象的解构赋值【简单易懂】
对象的解构赋值简介解构不仅可以用于数组,还可以用于对象。let { foo, bar } = { foo: 'aaa', bar: 'bbb' };foo // "aaa"bar // "bbb"对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。let { bar, foo } = { foo: 'aaa', bar: 'bbb' };foo // "aaa"bar // "bbb"let原创 2020-08-07 16:24:15 · 396 阅读 · 0 评论 -
【ES6】数组的解构赋值【简单易懂】
数组的解构赋值基本用法ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。以前,为变量赋值,只能直接指定值。let a = 1;let b = 2;let c = 3;ES6 允许写成下面这样。let [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。原创 2020-08-07 15:20:30 · 191 阅读 · 0 评论 -
【ES6】扩展运算符(...) 最常用的方法!!
es6之扩展运算符 三个点(…)对象的扩展运算符理解对象的扩展运算符其实很简单,只要记住一句话就可以:对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中let cba = { a: 1, b: 2 };let cbc = { ...cba }; // { a: 1, b: 2 }上述方法实际上等价于:let cba = { a: 1, b: 2 };let cbc = Object.assign({}, cba); // { a: 1, b: 2 }Ob原创 2020-08-07 14:54:18 · 755 阅读 · 0 评论 -
【ES6】何为动态计算属性名?
动态计算属性名在ES5之前,如果属性名是个变量或者需要动态计算,则只能通过 对象.[变量名] 的方式去访问。<script type="text/javascript"> var p = { name : '王五', age : 20 } var attName = 'name'; console.log(p[attName]) //这里 attName表示的是一个变量名。</script>而且这种动态计算属性原创 2020-08-05 16:40:53 · 201 阅读 · 0 评论 -
【ES6】let 和 const 命令
let 和 const 命令let命令块级作用域const命令顶层对象的属性globalThis 对象1.let 命令基本用法ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效(特点一)。{ let a = 10; var b = 1;}a // ReferenceError: a is not defined.b // 1上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两转载 2020-07-14 07:42:45 · 144 阅读 · 0 评论