JS面试题(一)

本文主要探讨JavaScript中的原型链理解,数组判断方式,ES6模块与CommonJS模块的区别,实现不可变对象的策略,参数传递方式,JavaScript的数据类型,BigInt提案的原因,以及null与undefined的区别。内容涵盖JavaScript基础与高级特性,是前端开发者面试的重要知识点。
摘要由CSDN通过智能技术生成

1.谈谈你对原型链的理解?

    在 JavaScript 中,每个对象中都有一个 __proto__ 属性,这个属性指向了当前对象的构造函数的原型。

    对象可以通过自身的 __proto__ 属性与它的构造函数的原型对象连接起来,而因为它的原型对象也有 __proto__,因此这样就串联形成一个链式结构,也就是我们称为的原型链。

2.如何判断是否是数组?

    1.通过instanceof判断

        instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值。

    2.通过constructor判断

        我们知道,实例的构造函数属性constructor指向构造函数,那么通过constructor属性也可以判断是否为一个数组。

    3.通过Object.prototype.toString.call()判断

        Object.prototype.toString().call()可以获取到对象的不同类型

    4.通过Array.isArray()判断

        Array.isArray() 用于确定传递的值是否是一个数组,返回一个布尔值

3.ES6模块与CommonJS模块有什么区别?

    1.语法上

        CommonJS 使用的是 module.exports = {} 导出一个模块对象,require(‘file_path’) 引入模块对象;

        ES6使用的是 export 导出指定数据, import 引入具体数据。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恬歆羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值