ES6中函数问题

var ccas = 12;

function ff() {

    var a;

    console.log(arguments.length);//0

    console.log(arguments[0]);//undefine;

    console.log(arguments.length > 0);//false

    console.log(a = arguments.length > 0 && 1);//false

    console.log(arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ccas);//12

    var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ccas;//12

    return function () {

        console.log(arguments.length);

        var ccas = 7;

        console.log(y);

    }.apply(null, arguments);

}


ff();


为什么y的值是12,求大神告知


波斯汪
浏览 491回答 1
1回答

肥皂起泡泡

var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ccas;//12 这是一个三目运算,arguments.length > 0 =》 falsearguments[0] !== undefined =》 false所以就成了=》var y = false && false ? arguments[0] : ccas;=》var y = false ? arguments[0] : ccas;不知道你是不理解三目运算还是?值为true取值 : 前面的,false取值后面的。所以y=12;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript