前端面试题JavaScript篇——2022-09-13
2022/9/14 1:16:12
本文主要是介绍前端面试题JavaScript篇——2022-09-13,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
每日3题
34 以下代码执行后,控制台中的输出内容为?
const num = { a: 10, add() { return this.a + 2; }, reduce: () => this.a - 2, }; console.log(num.add()); console.log(num.reduce());
35 以下代码执行后,控制台中的输出内容为?
var x = 1; if (function f() {}) { x += typeof f; } console.log(x);
36 以下代码执行后,控制台中的输出内容为?
function f() { return f; } console.log(new f() instanceof f);
- 公众号【今天也要写bug】更多前端面试题
答案及解析
34
// 答案:12 NaN // 考察普通函数和箭头函数中 this 的区别 // 普通函数中的 this 是运行时决定 // 箭头函数中的 this 是编译时就决定了的 const num = { a: 10, add() { return this.a + 2; }, reduce: () => this.a - 2, }; console.log(num.add()); // 隐式绑定:this 指向 num,因此输出 12 console.log(num.reduce()); // 箭头函数:this 指向 window,window 上没有属性 a // 所以 this.a=undefined,最终输出 NaN
35
// 答案:1undefined // 考察类型转换、typeof、加法赋值 var x = 1; // if 条件中的 function f() {} 是 truthy 值 // 所谓 truthy(真值)指的是在布尔值上下文中,转换后的值为 true 的值 // 所有除 false、0、-0、0n、""、null、undefined 和 NaN 以外的皆为真值 // 关于 truthy 和 falsy 的详细说明,可查阅 MDN 文档 if (function f() {}) { x += typeof f; } // typeof 返回的是一个字符串 // 加法赋值操作符 (+=) 将右操作数的值添加到变量,并将结果分配给该变量。 // 即先使用相加运算(+)得到结果,再赋值 // 相加运算符 (+) 用于对两个操作数进行相加运算,如果操作数中有一方为字符串, // 则该运算符将两个操作数连接成一个字符串。 console.log(x); // 综上,最终输出 1undefined
36
// 答案:false // 考察 new、原型链、instanceof function f() { return f; } console.log(new f() instanceof f); // new 运算符:如果构造函数显式返回一个对象,则该对象会覆盖 new 创建的对象 // new f() 得到的对象是 f // instanceof 方法:判断函数(右)的 prototype 属性是否会出现在对象(左)的原型链上 // new f() instanceof f,即 f instanceof f // 显然 f 的 prototype 属性不会出现在 f 的原型链上 // f.__proto__ => Function.prototype
这篇关于前端面试题JavaScript篇——2022-09-13的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding