2020年前端面试题集锦(奥利给!!!)
基础知识点与高频考题
JavaScript基础
console.log(1 < 2 < 3);
console.log(3 > 2 > 1);
// 写出代码执行结果,并解释为什么
// 答案与解析
true false
对于运算符>、<,一般的计算从左向右
第一个题:1 < 2 等于 true, 然后true < 3,true == 1 ,因此结果是true
第二个题:3 > 2 等于 true, 然后true > 1, true == 1 ,因此结果是false
/*********************************/
[typeof null, null instanceof Object]
// 写出代码执行的结果,并解释为什么
//答案与解析
[“object”, false]
1)typeof操作符返回一个字符串,表示未经计算的操作数的类型
类型 结果
Undefined “undefined”
Null “object”
Boolean “boolean”
Number “number”
String “string”
Symbol “symbol”
函数对象 “function”
任何其他对象 “object”
typeof null === ‘object’;// 从最开始的时候javascript就是这样
JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。由于 null 代表的是空指针(大多数平台下值为
0x00),因此,null的类型标签也成为了 0,typeof
null就错误的返回了"object"。这算一个bug,但是被拒绝修复,因为影响的web系统太多
2)instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性
null不是以Object原型创建,因此返回false
/*********************************/
// 死循环陷阱
var END = Math.pow(2, 53);
var START = END - 100;
var count = 0;
for (var i = START; i <= END; i++) {
count++;
}
console.log(count);
// 写出正确的打印结果,并解释为什么?
// 答案与解析
这个会陷入一个死循环,253是最大的值,因此253+1 等于 2^53
/*********************************/
var a = Date(0);
var b = new Date(0);
var c = new Date();
[a === b, b === c, a === c];
// 写出代码执行结果
// 答案与解析
[false,false,false]
需要注意的是只能通过调用 Date 构造函数来实例化日期对象:以常规函数调用它(即不加 new 操作符)将会返回一个字符串,而不是一个日期对象。另外,不像其他JavaScript 类型,Date 对象没有字面量格式。
a是字符串,b和c是Date对象,并且b代表的是1970年那个初始化时间,而c代表的是当前时间。
更多内容请见原文,原文转载自:http://www.mark-to-win.com/tutorial/50909.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?