最新要闻
- 视讯!免联考mba好在哪里
- 商务部将组织开展汽车促消费活动 推动适销对路车型下乡 当前简讯
- 高考监控有多清晰!任何小动作 都难逃法眼
- 讯息:小鹏宣传翻车?终究是错付了:林志颖的真爱还是特斯拉!
- 每日热讯!4年前坐轮椅高考的姑娘要毕业了:以专业第一保研至北京外国语大学
- 董明珠称格力不会放弃手机业务:消费者反馈很好! 热消息
- 不能让空客波音垄断 国产C919大飞机有多重要:1元投入换来86元效益
- 富乐德:拟设立日本全资子公司
- 资讯推荐:《艾尔登法环》战斗风格生存动作RPG《阴影笼罩》公布首个预告片
- 滁州市全力守好高考学子“舌尖安全”
- 电脑鼠标点击一次出现双击的效果是什么原因_鼠标单击出现双击效果
- 陕西煤业:5月自产煤销量1446.58万吨 同比增长9%
- 今头条!双胞胎拿错准考证!骁骑5分钟调换并暖心祝福:考好点哟
- AMD Zen5锐龙8000第一次露面:冲上6GHz!功耗不变-每日热讯
- 当前观察:PCIe 5.0全拉满!七彩虹CVN B650 GAMING FROZEN V14评测:同价位最好的大板
- 环球微资讯!市区不是油老虎了!坦克300 PHEV申报:电池超大
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
记录--7 个沙雕又带有陷阱的 JS 面试题 环球快讯
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助
为了保证的可读性,本文采用意译而非直译。
在 JS 面试中,经常会看到一些简单而又沙雕的题目,这些题目包含一些陷阱,但这些在我们规范的编码下或者业务中基本不会出现。 有些面试官就是这样,不专注于制定代码的标准和规范上,却用不规范的代码去检验别人是否细心。
这魔幻的世界就是一个攀比优越感的,我能考你,我就是比你优越,真实。
(相关资料图)
来看看这 7 个沙雕题目是哪些。
1. 偶然创建的全局变量
面试官问
在下面的代码中 typeof a
和 typeof b
结果各自是什么?(沙雕)
function foo() { let a = b = 0; a++; return a;}foo();typeof a; // => ???typeof b; // => ???
答案
这个代码的重点在第二行
:let a = b = 0
。这个语句声明了一个局部变量 a
,但是它也声明了一个全局变量b
。
在 foo()
作用域或全局作用域中都没有声明变量 b
。因此 JS 引荐将b = 0
表达式解释为 window.b = 0
。
如下图所示,函数 foo
中的 i
都是一个偶然创建的全局变量:
同样,在咱们的问题中,b
是一个偶然创建的全局变量。在浏览器中,上面的代码相当于如下:
function foo() { let a; window.b = 0; a = window.b; a++; return a;}foo();typeof a; // => "undefined"typeof window.b; // => "number"
typeof a
是 "undefined"
。变量 a
仅在 foo()
作用域中声明,在外部作用域内不可用。
typeof b
结果是 "number"
。b
是一个值为 0
的全局变量
2. 数组的 length 属性
面试官问
clothes[0]
的值是什么?(沙雕)
const clothes = ["jacket", "t-shirt"];clothes.length = 0;clothes[0]; // => ???
答案
数组对象的 length
属性具有一些特殊的行为:
减少
length
属性的值的副作用是删除自己的
数组元素,这些元素的数组索引位于新旧长度值之间。
由于 length
属性行为,当 JS 执行 clothes.length = 0
时,删除所有的 clothes
项。 所以 clothes[0]
的值为 undefined
,因为 clothes
数组已被清空。
3.考验眼力的魔幻题
面试官问
下面代码中 numbers 数组的内容是什么? 注意 for()
后加了一个分号(;
),真是沙雕。
const length = 4;const numbers = [];for (var i = 0; i < length; i++);{ numbers.push(i + 1);}numbers; // => ???
答案
上面代码中 for()
后加了一个分号(;
) ,加上分号,JS 会认为该语句结束,所以 for 循环执行了4次空语句,当退出循环的时候,此时的 i 值为 4。
然后执行 { numbers.push(i + 1); }
,所以最终 numbers
内容只有一个数字 5
。
上面的代码相当于下面的代码
const length = 4;const numbers = [];var i;for (i = 0; i < length; i++) { // does nothing}{ // a simple block numbers.push(i + 1);}numbers; // => [5]
用不规范的代码去检验别人是否细心,我觉得很沙雕。
4.自动分号插入
面试官问
arrayFromValue()
返回什么值?(沙雕)
function arrayFromValue(items) { return [items];}arrayFromValue(10); // => ???
答案
这里需要注意的return
和[items]
之间已经换行了,JS 会在换行之间自动插入分号。所以上面等价下面的代码:
function arrayFromValue(items) { return; [items];}arrayFromValue(10); // => undefined
return;
在函数内部使该函数返回undefined
,所以arrayFromValue(10)
的值为undefined
。
5. 被考烂的一个经典闭包问题
面试官问
下面的代码执行结果是什么?(能不能换个题)
let i;for (i = 0; i < 3; i++) { const log = () => { console.log(i); } setTimeout(log, 100);}
答案
当你对 JS 基础不是很了解的时候,很容易给出 0, 1, 2
的答案,我第一次在学校遇到这个题目也是这个答案。
执行这段代码的过程有两个阶段。
阶段1
for()
迭代3
次。在每次迭代时,都会创建一个新函数log()
,该函数将捕获变量i
。然后,setTimout()
调度log()
的执行。当
for()
循环完成时,变量i
的值为3
。
log()
是一个捕获变量 i
的闭包,该变量在 for()
循环的外部作用域中定义。重要的是要了解闭包在词法上捕获了变量 i
。
阶段 2
第二阶段发生在 100
毫秒之后
setTimeout()调用 3
个 log()
回调。log()
读取变量 i
的当前值,即 3
。
这就是为什么控制台输出为 3
, 3
和 3
的原因
6. 浮点运算
面试官问
下面的代码输出是什么? (能不能换个题)
0.1 + 0.2 === 0.3 // => ???
答案
首先,来看一下0.1 + 0.2
的值
0.1 + 0.2; // => 0.30000000000000004
0.1
和 0.2
的和不等于 0.3
,但略高于 0.3
。
由于以二进制方式对浮点数进行编码,因此像浮点数相加之类的操作会产生舍入误差。
因此, 0.1 + 0.2 === 0.3
是 false
。
7. 变量的提升
面试官问
如果在声明之前访问 myVar
和 myConst
会发生什么?(能不能换个题)
myVar; // => ???myConst; // => ???var myVar = "value";const myConst = 3.14;
答案
提升和时间死区是影响 JS 变量生命周期的两个重要概念。
在声明之前访问 myVar
的结果是 undefined
,因为使用 var 声明的变量会被提升且值为 undefined
。
但是,在声明行之前访问 myConst
会引发 ReferenceError
。在代码行 const myConst = 3.14
之前,const
变量处于临时死区。
本文转载于:
https://juejin.cn/post/6844903974374473736
如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。
关键词:
记录--7 个沙雕又带有陷阱的 JS 面试题 环球快讯
视讯!免联考mba好在哪里
上交所理事长邱勇:以全面注册制为牵引 优化股权激励信息披露等制度 全球观速讯
商务部将组织开展汽车促消费活动 推动适销对路车型下乡 当前简讯
高考监控有多清晰!任何小动作 都难逃法眼
讯息:小鹏宣传翻车?终究是错付了:林志颖的真爱还是特斯拉!
每日热讯!4年前坐轮椅高考的姑娘要毕业了:以专业第一保研至北京外国语大学
董明珠称格力不会放弃手机业务:消费者反馈很好! 热消息
不能让空客波音垄断 国产C919大飞机有多重要:1元投入换来86元效益
富乐德:拟设立日本全资子公司
资讯推荐:《艾尔登法环》战斗风格生存动作RPG《阴影笼罩》公布首个预告片
车载测试三大通信协议 焦点快看
Angular6 教程_编程入门自学教程_菜鸟教程-免费教程分享
三大显卡厂商(Intel NVIDIA AMD)产品对硬件解码编码支持程度列表 焦点速看
环球信息:离线安装rpm包以及自建yum仓库
【数学】各种积性函数的线性筛法_微速讯
滁州市全力守好高考学子“舌尖安全”
电脑鼠标点击一次出现双击的效果是什么原因_鼠标单击出现双击效果
陕西煤业:5月自产煤销量1446.58万吨 同比增长9%
今头条!双胞胎拿错准考证!骁骑5分钟调换并暖心祝福:考好点哟
AMD Zen5锐龙8000第一次露面:冲上6GHz!功耗不变-每日热讯
当前观察:PCIe 5.0全拉满!七彩虹CVN B650 GAMING FROZEN V14评测:同价位最好的大板
环球微资讯!市区不是油老虎了!坦克300 PHEV申报:电池超大
广汽董事长曾庆洪:想死的企业就早点降价吧
太仓房博会抛出多重礼包 点燃房市“夏日激情”
环球微动态丨凤凰点职业 凤凰令什么职业好
首次中国-巴基斯坦-伊朗三方司局级反恐安全磋商举行 外交部介绍情况
视频|忘带身份证补录证明 铁骑为其领路办理
微速讯:CAN通信(二) :协议介绍
详解驱动开发中内核PE结构VA与FOA转换|热资讯
全球视点!MegEngine 动态执行引擎-Imperative Runtime 概述
当前聚焦:【新华500】新华500指数(989001)8日低开高走涨0.66%
广汽集团曾庆洪:汽车产业告别高增长黄金时代,淘汰赛加速进行 全球视讯
大爷将2台电动车焊一起自制代步车:觉得代步车太贵
小金毛冲进考场被无情请出 网友:忘带双证了?
突发!中国电信大面积崩溃:手机没信号、电话空号
显卡带来巨额利润 英伟达股价还能再涨30% 五大看涨理由…… 播资讯
今日精选:看似灯泡其实是个智能家居摄像机!萤石C8b 4G版图赏
天天微头条丨头部 UP 主入局,B 站带货时代来了?
理论+示例,详解GaussDB(DWS)资源管理 环球最新
C++ 引用
跟着源码学IM(十一):一套基于Netty的分布式高可用IM详细设计与实现(有源码)|当前快讯
观天下!MySQL百万级数据大分页查询优化的实现
矩形图的奇妙世界:揭开数据背后的故事 热点聚焦
中意悦享安康重疾险怎么样?保什么? 每日热讯
全球金融周期:趋势和影响——人民银行副行长、外汇局局长潘功胜在第十四届陆家嘴论坛上的主题演讲
弥勒岩在福清什么地方_弥勒岩
商家被大学生“占便宜”到崩溃引热议 7天无理由退货该取消吗?勿以恶小而为之|每日焦点
浙大创造出新物质:兼具硬度和弹性 真五边形战士
佛山一考生第一天走错考场:第二天赶不上公交 两次获救助 环球百事通
高考生出考场接受采访 同学跑来喊话:加强李信 环球热文
MediaTek天玑开发者中心官网上线 天玑生态圈加速引领移动应用体验进化 世界报道
每日看点!notify party和consignee(外贸单据中CONSIGNEE和NOTIFY PARTY有什么区别)
海口一老人街边突然摔倒,两小伙上前将人扶起 焦点速看
steam好友聊天闪退_steam好友功能激活
浙江省养老金调整方案及计算公式表 2022~2023年浙江省养老金调整方案细则最新消息(全文)
李云泽:坚决消除监管的空白和盲区 环球观热点
天天动态:以为走错 到了新考场发现这下真错了:女生闹大乌龙 幸运没耽误考试
不接受没用!欧美要把全球热门IP都改为黑人 塞尔达公主是黑人 太过分了?
百事通!618又要来了,江苏省消保委发布消费提示
岳阳县疾病预防控制局揭牌成立 焦点消息
深度学习应用篇-计算机视觉-目标检测[4]:综述、边界框bounding box、锚框(Anchor box)、交并比、非极大值抑制NMS、SoftNMS
Openjob:更强大、更智能的新一代分布式任务调度框架|世界热推荐
特斯拉被曝动员中国供应商出海 去墨西哥复制“上海工厂”|每日报道
官方重要提醒!网易暴雪游戏退款申请即将截止
全球新资讯:一个游泳池里到底有多少尿?
世界热点评!一本书卖4.5万 日本研究员拆解比亚迪海豹视频流出:竟有些热血
全球微头条丨燃油绝唱! 第八代高尔夫终于改款:首次搭载大尺寸屏幕
天天热门:一字千年,方正字库的守正与创新
MySQL索引的数据结构 环球快资讯
焦点!原生AJAX案例浏览器报错:Cross origin requests are only supported for protocol
全球头条:springboot~jgroups实现节点间的通讯
轻松实现物联网通信的利器:MQTT网关神器——FluxMQ 当前视点
win10配置Electron安装环境以及解决报错-消息
当前热文:青春的答卷
世界最新:当事博主否认被强制执行:特斯拉还想让平台封杀我 不是谁都给你面子
奶凶!沃尔沃史上最小SUV EX30发布!纯电续航480km 3.6秒破百
天天通讯!端午节假期火车票今日开售:调休放三天假 高速不免费
世界新动态:弯道强才是真的强!问界M5智驾版重庆山路实测:尽享丝滑
焦点快报!140W满功耗RTX 4060助力!618百亿补贴ROG魔霸7 Plus到手价仅8999元
天天时讯:郑外名师评卷·高考数学:反刷题、反套路,重视基础,稳中求新
龙湾开展“红色星期天”活动 让“一老一小”共享红色温暖 环球焦点
世界微头条丨太卷了,史上最简单的监控系统 catpaw 简介
小车PID巡线调节 全球报资讯
易基因|一种全新的检测DNA羟甲基化的技术:ACE-Seq 环球时快讯
JPA单表存储List与模糊查询
医保缴费多少年才可以终身享受待遇?多少钱一年?
欧盟将强制禁用华为5G设备 热点在线
性价比口碑双冠王!魅族20 PRO成618四千档性能神机 天天热资讯
雾霾笼罩纽约 自由女神像被“吞没” :美国大片地区昏黄烟雾 宛如末日降临-世界热头条
世界头条:高考时没有一个孔子是饿着的:学子争相给先贤送吃的 期盼金榜题名
女子开门杀致骑手摔倒被罐车卷入车底:第一反应竟是观察车门|天天速递
Adata 展示其 1600W PSU 可以为四个 450W RTX 4090 供电
java~如何使用无符号整型 看热讯
文字效果 用背景渐变实现 波浪背景文字
P1585 魔法阵 题解
关注2023年河南高考丨免费午餐温暖高考学子
西安李姐茶叶蛋的家常做法?
有人在麦田插钢筋损坏收割机:钢筋还特意用麦子包裹 天天报道
帅不过3秒!RTX 4060游戏本挑战全景光追惨败 天天实时