每日3题1下面代码执行后,控制台输出什么?varcompany={address:"chengdu",};varobj=Object.create(company);deleteobj.address;console.log(obj.address);2下面的代码执行后,在安慰?vara=[0];if(a){console.log(a==true);}else{console.log(a);}3下面代码执行后,控制台输出什么?(function(){vara=(b=5);})();console.log(b);console.log(a);公众号【今天也来写bug】前端更多解答面试题及解析1//答案:chengdu//考察原型链和Object.create方法//Object.create()方法用于创建新对象,使用现有对象作为新创建对象的原型objectvarcompany={address:"成都",};varobj=Object.create(company);//obj.__proto__=companydeleteobj.address;//删除obj地址的属性console.log(obj.address);//可以通过原型链找到公司.address//所以输出chengdu2//Answer:false//判断truthy和falsy//falsy值(false值)是布尔上下文中识别为false的值,包括:false,0,-0,0n,"",null,undefined,andNaN//在JavaScript中,真值是在布尔上下文中转换为真值。除false之外的任何值都定义为true。//JavaScript在期望布尔值的上下文中使用类型转换将值转换为布尔值,例如条件语句和循环语句。变量a=[0];//truthyif(a){console.log(a==true);//false}else{console.log(a);}3//Answer:5error//检查变量声明//在非严格模式下,如果作用域链中没有声明同名变量,赋值给不合格的标识符会在全局对象下创建同名属性,即创建为全局变量(function(){vara=(b=5);//这里变量b会变成a全局变量})();console.log(b);//输出5console.log(a);//如果作用域内没有变量a,直接报错
