javascript - ES6中函數(shù)問題
問題描述
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:var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ccas;//12 這是一個(gè)三目運(yùn)算,arguments.length > 0 =》 falsearguments[0] !== undefined =》 false所以就成了=》var y = false && false ? arguments[0] : ccas;=》var y = false ? arguments[0] : ccas;不知道你是不理解三目運(yùn)算還是?值為true取值 : 前面的,false取值后面的。所以y=12;回答2:
因?yàn)?arguments[0]==undefined且 var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ccas;//12所以 y=12
如果你想問為什么不等于7你需要學(xué)習(xí)一下閉包和基本類型和引用類型
參考鏈接:http://www.cnblogs.com/chengg...http://www.ruanyifeng.com/blo...
回答3:var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ccas;//12
因?yàn)檫@里y就是12
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?3. nignx - docker內(nèi)nginx 80端口被占用4. docker容器呢SSH為什么連不通呢?5. mac里的docker如何命令行開啟呢?6. 關(guān)于docker下的nginx壓力測試7. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?8. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????9. docker start -a dockername 老是卡住,什么情況?10. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。

網(wǎng)公網(wǎng)安備