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. python - 如何統(tǒng)計(jì)一份英文 API 開發(fā)文檔(如 javadoc文檔)的詞頻?2. mysql優(yōu)化 - mysql 一張表如果不能確保字段列長(zhǎng)度一致,是不是就不需要用到char。3. python - oslo_config4. 請(qǐng)教一個(gè)mysql去重取最新記錄5. python - 請(qǐng)問這兩個(gè)地方是為什么呢?6. python - 為什么match匹配出來的結(jié)果是<_sre.SRE_Match object; span=(0, 54), match=’’>7. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量8. 人工智能 - python 機(jī)器學(xué)習(xí) 醫(yī)療數(shù)據(jù) 怎么學(xué)9. php - 有關(guān)sql語句反向LIKE的處理10. 大家都用什么工具管理mysql數(shù)據(jù)庫?
