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 這是一個三目運(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. Python中使用超長的List導(dǎo)致內(nèi)存占用過大2. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效3. javascript - 有適合開發(fā)手機(jī)端Html5網(wǎng)頁小游戲的前端框架嗎?4. javascript - 關(guān)于apply()與call()的問題5. javascript - jQuery post()方法,里面的請求串可以轉(zhuǎn)換為GBK編碼么?可以的話怎樣轉(zhuǎn)換?6. 安全性測試 - nodejs中如何防m(xù)ySQL注入7. java - 在用戶不登錄的情況下,用戶如何添加保存到購物車?8. javascript - JS變量被清空9. javascript - axios請求回來的數(shù)據(jù)組件無法進(jìn)行綁定渲染10. javascript - main head .intro-text{width:40%} main head{display:flex}為何無效?
