你是不是我得x

第一题

var x = 1;
function f(x, y = function () {x = 3; console.log(x);}) {
    console.log(x); // undefined
    var x = 2;
    y(); // 3
    console.log(x); // 2
}
f()
console.log(x); // 1
//1.如果把var x = 2注释掉,输出的又是什么?
//2.如果把f函数第一个参数x改成xx,输出的又是什么?
//3.如果把f函数第一个参数x设置了默认值为4,输出的又是什么?

第二题

如果把var x = 2注释掉,输出的又是什么?

var x = 1;
function f(x, y = function () {x = 3; console.log(x);}) {
    console.log(x); // undefined
    // var x = 2;
    y(); // 3
    console.log(x); // 3
}
f()
console.log(x); // 1

第三题

如果把f函数第一个参数x改成xx,输出的又是什么?

var x = 1;
function f(xx, y = function () {x = 3; console.log(x);}) {
    console.log(x); // undefined
    var x = 2;
    y(); // 3
    console.log(x); // 2
}
f()
console.log(x); // 3

第四题

如果把f函数第一个参数x设置了默认值为4,输出的又是什么?

var x = 1;
function f(x = 4, y = function () {x = 3; console.log(x);}) {
    console.log(x); // 4
    var x = 2;
    y(); // 3
    console.log(x); // 2
}
f()
console.log(x); // 1

第五题

如果吧var x = 2注释掉, 并且把f函数第一个参数x设置了默认值为4,输出的又是什么

var x = 1;
function f(x = 4, y = function () {x = 3; console.log(x);}) {
    console.log(x); // 4
    // var x = 2;
    y(); // 3
    console.log(x); // 3
}
f()
console.log(x); // 1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容