//?挑戰(zhàn)一
var?x?=?1;
//單獨(dú)聲明的時(shí)候,f的類型是function,作為if判斷的時(shí)候,未得到聲明,所以是undefined
if?(!!function?f()?{
????????})?{
????x?+=?typeof?f;
}
console.log(x);?????//?"1undefined"
//?挑戰(zhàn)二
(function?f(f)?{
????console.log(typeof?f());????//?"number"
})(function?()?{
????return?1;
});
//?挑戰(zhàn)三
console.log(typeof?2?*?3);????//?NaN,對(duì)于運(yùn)算結(jié)果不能轉(zhuǎn)換成數(shù)字的,將返回?NaN
console.log(typeof?2?+?3);????//?"number3",數(shù)字字符串之前存在數(shù)字中的正負(fù)號(hào)(+/-)時(shí),會(huì)被轉(zhuǎn)換成數(shù)字
//?挑戰(zhàn)四
var?a?=?0,?b?=?0;
console.log(a++?+?b);?????//?0?一元運(yùn)算符++優(yōu)先級(jí)高于+
console.log(a);?????????//?1
console.log(b);?????????//?0
//?挑戰(zhàn)五
var?a,?b,?c;
a?=?b?==?c;
console.log(a);?????//?false
//?挑戰(zhàn)六
console.log(1?&&?3);????????????//?3
console.log(1?&&?"foo"?||?0);???//?"foo"
console.log(1?||?"foo"?&&?0);???//?1
//?挑戰(zhàn)七
var?a?=?1;
var?b?=?(a?=?(2,?4,?6))?+?a++
console.log(b);?????//?12??b=(6)+a++??==12
//?挑戰(zhàn)八
if?(!("a"?in?window))?{
????var?a?=?1;
}
console.log(a);?????//?undefined,因?yàn)?!結(jié)果為false,所以不會(huì)執(zhí)行賦值語句,alert(a)?返回?undefined
//?挑戰(zhàn)九
var?val?=?'smtg';
console.log('Value?is?'?+?(val?===?'smtg')???'Something'?:?'Nothing');??//?"Something"
//?挑戰(zhàn)十
console.log(1?+?-+++-+1);??//?2,1+(-(+(+(+(-(+1))))))這樣注釋對(duì)嗎?第二題和第六題如何解釋?
javascript表達(dá)式和運(yùn)算符的問題
fancyL
2018-01-25 15:46:55