面试资料一. js基础知识点

1. 类型

JS 数据类型分为两大类:

原始类型
对象类型

原始(Primitive)类型

在 JS 中,存在着 7 种原始值,分别是:

  • boolean
  • null
  • undefined
  • number
  • string
  • symbol
  • bigint

对象(Object)类型

对象类型和原始类型不同的是,原始类型存储的是值,一般存储在栈上,对象类型存储的是地址(指针),数据存储在堆上,这部分的内容具体会在「闭包」小节讲解。

当创建了一个对象类型的时候,计算机会在堆内存中帮我们开辟一个空间来存放值,但是我们需要找到这个空间,这个空间会拥有一个地址(指针)。

涉及面试题

  • 0.1 + 0.2 !== 0.3
  • JS 类型有哪些?
  • 大数相加、相乘算法题
  • 修改对象得出结果笔试题

2. 类型判断

typeof

typeof 对于原始类型来说, 除了null 都可以显示正确的类型, 如果想判断null的话可以使用variable===null

  • 原理

instanceof

instanceof 通过原型链的方式来判断是否为构建函数的实例, 常用于判断具体的对象类型

  • 原理

Object.prototype.toString.call

前几种方式或多或少都存在一些缺陷,Object.prototype.toString.call 综合来看是最佳选择,能判断的类型最完整,基本上是开源库选择最多的方式。

常见面试题
  • JS 类型如何判断,有哪几种方式可用
  • instanceof 原理
  • 手写 instanceof

3. this指向

1、普通函数中的this指向window

2、定时器中的this指向window

3、自调用函数中的this 指向window

4、箭头函数没有this,它的this指向取决于外部环境

5、 构造函数中this和原型对象中的this,都是指向构造函数new 出来实例对象

6、类 class中的this 指向由constructor构造器new出来的实例对象

7、事件中的this指向事件的调用者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值