网站首页 » 前端开发 » JavaScript » 《ES6 标准入门》学习笔记(第七章:函数的扩展)
上一篇:
下一篇:

《ES6 标准入门》学习笔记(第七章:函数的扩展)

《ES6 标准入门》的这一章虽然说是函数的扩展,但更多的是函数的优化,让函数变得更精简,更美妙。

《ES6 标准入门》学习笔记(第七章:函数的扩展)

函数的默认值与解构赋值的结合使用】可以说是 ES6 的一个非常棒的功能,让你在给函数设置参数时易如反掌。但是这里我们还得注意下面两种写法的不同:

看过来
function m1({x=0,y=0} = {}){
    console.log(x,y);
}

function m2({x,y} = {x:0,y:0}){
    console.log(x,y);
}

// 都不传
m1(); // 0 0
m2(); // 0 0

// 都传
m1({x:3,y:8}); // 3 8
m2({x:3,y:8}); // 3 8

// 只传 x
m1({x:3}); // 3 0
m2({x:3}); // 3 undefined

// x 和 y 都无值的情况
m1({}); // 0 0
m2({}); // undefined undefined

m1({z:3}); // 0 0
m2({z:3}); // undefined undefined

参数默认值的位置】,这个我们只需要记住就好,因为在平时的使用中用得应该也不会少。

看这里
function f(x,y=5,z){
    console.log(x,y,z);
}

f(); // undefined 5 undefined
f(1); // 1 5 undefined
f(1,,2); // 报错
f(1,undefined,2); // 1 5 2

作用域】我们要知道书说所说的单独作用域的意思:

看这里
var x =1;
function f(x,y=x){
    console.log(y);
}

f(2); //2

默认值变量 x 指向一个参数 x ,而不是全局变量 x 。如果函数 f 中的参数没有 变量 x ,侧会指向外层的全局变量 x。

  • 微信扫一扫,赏我

  • 支付宝扫一扫,赏我

声明

原创文章,不经本站同意,不得以任何形式转载,如有不便,请多多包涵!

本文永久链接:http://yunkus.com/es6-primer-notes-part7/

Leave a Reply

Your email address will not be published. Required fields are marked *

评论 END