为了账号安全,请及时绑定邮箱和手机立即绑定

ES6中函数问题

ES6中函数问题

波斯汪 2018-11-14 14:15:41
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,求大神告知
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

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

 这是一个三目运算,

arguments.length > 0 =》 false

arguments[0] !== undefined =》 false

所以就成了

=》

var y = false && false ? arguments[0] : ccas;

=》

var y = false ? arguments[0] : ccas;

不知道你是不理解三目运算还是?

值为true取值 : 前面的,false取值后面的。

所以y=12;


查看完整回答
反对 回复 2018-12-14
  • 1 回答
  • 0 关注
  • 487 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信