js基础知识点

165 阅读2分钟

js基础知识点及常考面试题(一)

原始类型

涉及题型:原始类型有哪几种,null是对象吗

在js中存在六种原始值

1.boolean

2.null

3.undefined

4.number

5.string

6.symbol

原始类型存储的都是值,没有函数可以调用,js中number是浮点类型,在使用中会遇到某些bug,比如0.1+0.2!==0.3,string类型是不可变的。null很多人会以为是一个对象类型,其实是错误的,虽然typeof null会输出object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。

对象类型

题目:对象类型和原始类型有什么不同,函数对象是参数会发生什么问题

在js中除了原始类型,其他全是对象类型,对象类型和原始类型不同的是,原始类型存储的是值,对象类型存储的是地址,当创建了一个对象类型,计算机会帮我们开辟一个空间来存储值,这个空间会拥有一个地址

const a=[] 对于常量a来说,假设地址为#001,那么在地址#001上存放了[],常量a存放了地址#001

const a=[] const b=a b.push(1)

当我们将常量复制给另一个变量时,复制的是原本变量的地址,也就是说b存放的地址是#001,当我们进行数据修改的时候,就会修改地址#001上面的值,就导致了两个变量的值都发生变化。