前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2020年前端面试题集锦(奥利给!!!)

2020年前端面试题集锦(奥利给!!!)

作者头像
马克社区
发布2022-07-05 20:40:54
3210
发布2022-07-05 20:40:54
举报
文章被收录于专栏:高端IT

基础知识点与高频考题 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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档