每日3题1下面代码执行后,控制台输出什么?console.log(+true,!'hello')2点击p标签会输出什么constnumbers=[1,2,3,4,5]const[y]=numbersconsole.log(y)3下面的代码执行完之后,控制台的输出是?constfn=(x)=>(y)=>(z)=>{console.log(x,y,z);};fn(1)(2)(3);公众号【今天也写bug]更多前端面试题答案及分析1//答案:1false//考察运算符和类型转换//加法运算符:如果+两边都有字符串,则将两者拼接成一个字符串,否则执行加法操作//+true会将true转化为数字1,最后输出1console.log(+true,!"hello");//在JS中,false值有:null;NaN;0;空字符字符串(“”或''或``);未定义。//其他一切都为真//!真=>假,!false=>true//所以!"hello"是false2//Answer:1//调查ES6数组的解构赋值//ES6允许这样写://let[a,b,c]=[1,2,3]//这种写法可以从数组中提取值,根据对应的位置,给变量赋值constnumbers=[1,2,3,4,5];const[y]=数字;//y对应1console.log(y);//所以输出13//answer:123//检查箭头函数的闭包和函数调用的组合constfn=(x)=>(y)=>(z)=>{console.log(x,y,z);};//fn等同于:constfn=(x)=>{return(y)=>{return(z)=>{console.log(x,y,z);};};};fn(1)(2)(3);//函数调用的结合性是从左到右,相当于constf1=fn(1);//(y)=>{...}constf2=f1(2);//(z)=>{console.log(x,y,z);}f2(3);//输出123
