2024年Web前端JavaScript面试题整理附答案

(1)两等号判等,会在比较时进行类型转换;

(2)三等号判等(判断严格),比较时不进行隐式类型转换,(类 型不同则会返回false);

(3)Object.is 在三等号判等的基础上特别处理了NaN、-0和+0,保证-0和+0不再相同,但

Object.is(NaN, NaN)会返回true。Object.is应被认为有其特殊的用途,而不能用它认为它比其它的相等对比更宽松或严格。

面试题2:common.js和es6中模块引入的区别?

答案:

CommonJS是一种模块规范, 最初被应用于Nodejs, 成为Nodejs的模块规范。运行在浏览器端的JavaScript由于也缺少类似的规范,在ES6出来之前,前端也实现了一套相同的模块规范(例如: AMD),用来对前端模块进行管理。自ES6起,引入了一套新的ES6 Module规范,在语言标准的层面.上实现了模块功能,而且实现得相当简单,有望成为浏览器和服务器通用的模块解决方案。但目前浏览器对ES6 Module兼容还不太好,我们平时在Webpack中使用的export和import,会经过Babel转换为CommonJS规范。在使用上的差别主要有:

CommonJS 模块输出的是一个值的拷贝, ES6 模块输出的是值的引用;

CommonJS模块是运行时加载,ES6 模块是编译时输出接口;

Common]s 是单个值导出,ES6 Module可以导出多个;

Common]s是动态语法可以写在判断里,ES6 Module静态语法只能写在顶层。

面试题3:JavaScript有几种方法判断变量的类型?

答案:

(1)使用typeof检测当需要判断变量是否是number, string, boolean, function, undefined等类型时,可以使用typeof进行判断。

(2)使用instanceof检测instanceof运算符与typeof运算符相似,用于识别正在处理的对象的类型。与typeof方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。

(3)使用constructor检测constructor本来是原型对象上的属性,指向构造函数。但是根据实例对象寻找属性的顺序,若实例对象上没有实例属性或方法时,就去原型链上寻找,因此,实例对象也是能使用constructor属性的。

读者福利

========

由于篇幅过长,就不展示所有面试题了,想要完整面试题目的朋友(另有小编自己整理的2024大厂高频面试题及答案附赠)


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值