共计 1061 个字符,预计需要花费 3 分钟才能阅读完成。
每日 3 题
1 以下代码执行后,控制台中的输入内容为?
var company = {address: "chengdu",}; | |
var obj = Object.create(company); | |
delete obj.address; | |
console.log(obj.address); |
2 以下代码执行后,控制台中的输入内容为?
var a = [0]; | |
if (a) {console.log(a == true); | |
} else {console.log(a); | |
} |
3 以下代码执行后,控制台中的输入内容为?
(function () {var a = (b = 5); | |
})(); | |
console.log(b); | |
console.log(a); |
- 公众号【明天也要写 bug】更多前端面试题
答案及解析
1
// 答案:chengdu | |
// 考查原型链和 Object.create 办法 | |
// Object.create() 办法用于创立一个新对象,应用现有的对象来作为新创建对象的原型 | |
var company = {address: "chengdu",}; | |
var obj = Object.create(company); // obj.__proto__=company | |
delete obj.address; // 删除 obj 的属性 address | |
console.log(obj.address); // 通过原型链能够找到 company.address | |
// 故输入 chengdu |
2
// 答案:false | |
// 考查 truthy 和 falsy | |
// falsy 值(虚值)是在 Boolean 上下文中认定为 false 的值,包含:false、0、-0、0n、""、null、undefined 和 NaN | |
// 在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为 true 的值。被定义为假值以外的任何值都为真值。// JavaScript 在须要用到布尔类型值的上下文中应用强制类型转换 (Type Conversion) 将值转换为布尔值,例如条件语句和循环语句。var a = [0]; // truthy | |
if (a) {console.log(a == true); // false | |
} else {console.log(a); | |
} |
3
// 答案:5 报错 | |
// 考查变量申明 | |
// 在非严格模式下,如果作用域链中没有申明同名的变量,则对未限定标识符的赋值将会在全局对象下创立同名属性,即作为全局变量被创立 | |
(function () {var a = (b = 5); // 此处变量 b 会成为全局变量 | |
})(); | |
console.log(b); // 输入 5 | |
console.log(a); // 作用域中没有变量 a 间接报错 |
正文完
发表至: javascript
2022-09-14