现:在ES6中使用剩余参数运算符则更为简洁,可读性提高:
这种函数表达式形式称为简写主体语法:1.在函数主体周围没有花括号 ,2.自动返回表达式
sundae这个构造函数内的this的值是实例对象, 因为他使用new被调用.
3.5.2. 指定的对象
函数使用call/apply被调用,this的值指向指定的obj2,因为call()第一个参数明确设置this的指向
3.5.3. 上下`文对象
函数是对象的方法, this指向就是那个对象,此处this就是指向data.
3.5.3. 全局对象或 undefined
此处是this指向全局对象,在严格模式下,指向undefined.
传递给 setTimeout() 的函数被调用时没用到 new、call() 或 apply(),也没用到上下文对象。意味着函数内的 this 的值是全局对象,不是 dessert 对象 。实际上发生的情况是 ,创建了新的 scoops 变量(默认值为 undefined),然后递增(undefined + 1 结果为 NaN);解决此问题的方式之一是使用闭包(closure)
箭头函数的作用正是如此, 将setTimeOut()的函数改为剪头函数:
greet() 函数中混乱的前两行的作用是什么?它们的作用是当所需的参数未提供时,为函数提供默认的值。但是看起来很麻烦, ES6引入一种新的方式创建默认值, 他叫默认函数参数:
createGrid() 函数预期传入的是数组。它通过解构将数组中的第一项设为 width,第二项设为 height 。如果数组为空 ,或者只有一项,那么就会使用默认参数,并将缺失的参数设为默认值 5。但是存在一个问题:
现:出现错误 ,因为 createGrid() 预期传入的是数组,然后对其进行解构。因为函数被调用时没有传入数组,所以出现问题。但是 ,我们可以使用默认的函数参数!
现:
在 createSundae() 函数使用对象默认值进行解构时,如果你想使用 scoops 的默认值,但是更改 toppings ,那么只需使用 toppings 传入一个对象
将上述示例与使用数组默认值进行解构的同一函数相对比 。
前:
对于这个函数,如果想使用 scoops 的默认数量,但是更改 toppings ,则必须以这种奇怪的方式调用你的函数:
因为数组是基于位置的,我们需要传入 undefined 以跳过第一个参数(并使用默认值)来到达第二个参数。
花括号 { } 表示被解构的对象,type 、color 和 karat 表示要将对象中的属性存储到其中的变量
现:使用和所分配的变量名称相同的名称初始化对象时如果属性名称和所分配的变量名称一样,那么就可以从对象属性中删掉这些重复的变量名称。
匿名函数被分配给属性 calculateWorth ,但是真的需要 function 关键字吗?在 ES6 中不需要!
for...of循环是最新添加到javaScript循环系列中的循环 。
它结合了其兄弟循环形式for循环和for...in循环的优势,可以循环任何可迭代(也就是遵守可迭代协议)类型的数据。默认情况下,包含以下数据类型:String、Array、Map 、Set ,注意不包含Object数据类型(即{})。
默认情况下,对象是不可迭代的
for...of 循环还具有其他优势,解决了 for 和 for...in 循环的不足之处 。你可以随时停止或退出 for...of 循环。
不用担心向对象中添加新的属性。for...of 循环将只循环访问对象中的值 。
javascript中类其实只是function, 方法之间不能使用,,不用逗号区分属性和方法.
1.关键字class带来其他基于类的语言的很多思想,但是没有向javascript中添加此功能
2.javascript类实际上还是原型继承
3.创建javascript类的新实例时必须使用new关键字
评论列表(3条)
我是麦秆号的签约作者“admin”
本文概览:现:在ES6中使用剩余参数运算符则更为简洁,可读性提高:...
文章不错《ES6常见的新语法》内容很有帮助