前台程序员面试你应该懂的原生JS——1
来源:易懂程序猿     阅读:587
源码超市
发布于 2019-06-11 05:19
查看主页

本文梳理出了少量面试中有肯定难度的高频原生JS问题,部分知识点可能你之前从未关注过,或者者看到了,却没有仔细研究,但是它们却非常重要。

1. 原始类型有哪几种?null 是对象吗?原始数据类型和复杂数据类型存储有什么区别?

原始类型有6种,分别是undefined,null,bool,string,number,symbol(ES6新添加)。

尽管 typeof null 返回的值是 object,但是null不是对象,而是基本数据类型的一种。

原始数据类型存储在栈内存,存储的是值。

复杂数据类型存储在堆内存,存储的是地址。当我们把对象赋值给另外一个变量的时候,复制的是地址,指向同一块内存空间,当其中一个对象改变时,另一个对象也会变化。

2. ES6中的class和ES5的类有什么区别?

1.ES6 class 内部所有定义的方法都是不可枚举的;

2.ES6 class 必需使用 new 调用;

3.ES6 class 不存在变量提升;

4.ES6 class 默认即是严格模式;

5.ES6 class 子类必需在父类的构造函数中调用super(),这样才有this对象;ES5中类继承的关系是相反的,先有子类的this,而后用父类的方法应用在this上。

3. 数组的哪些API会改变原数组?

修改原数组的API有:

splice/reverse/fill/copyWithin/sort/push/pop/unshift/shift

不修改原数组的API有:

slice/map/forEach/every/filter/reduce/entry/entries/find

4. let、const 以及 var 的区别是什么?

1.let 和 const 定义的变量不会出现变量提升,而 var 定义的变量会提升。

2.let 和 const 是JS中的块级作用域

3.let 和 const 不允许重复公告(会抛出错误)

4.let 和 const 定义的变量在定义语句之前,假如使用会抛出错误(形成了暂时性死区),而 var 不会。

5.const 公告一个只读的常量。一旦公告,常量的值就不能改变(假如公告是一个对象,那么不能改变的是对象的引用地址)

5. 什么是闭包?闭包的作用是什么?闭包有哪些使用场景?

闭包是指有权访问另一个函数作用域中的变量的函数,创立闭包最常用的方式就是在一个函数内部创立另一个函数。

闭包的作用有:

1.封装私有变量

2.模仿块级作用域(ES5中没有块级作用域)

3.实现JS的板块

6. 谈谈你对原型的了解?

在 JavaScript 中,每当定义一个对象(函数也是对象)时候,对象中都会包含少量预约义的属性。其中每个函数对象都有一个prototype 属性,这个属性指向函数的原型对象。使用原型对象的好处是所有对象实例共享它所包含的属性和方法。

分享超过5万程序员朋友下载的web前台学习资料,这次我把所有干货重新梳理精简,从零基础到深入进阶,分享给大家。 获取方式:官方企鹅群:9567,66604(持续招募中)

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
前台面试每日 3+1 —— 第279天
MySQL InnoDB 结构及特性(个人了解)
身为前台工程师,对你来说,你认为最重要的是什么?
el-input 标签只能输入纯数字
key-value 存储系统 etcd 加入 CNCF 沙箱孵化器
首页
搜索
订单
购物车
我的