【前端面试复习】JavaScript 基础

123 阅读1分钟

基础数据类型

JavaScript 的基础数据类型: String / Number / Null / Undefined / Boolean / Symbol

引用类型:Object

变量类型判断

typeof

可用于判断除 null 以外的基础数据类型,不能判断 null 是因为二进制 000 的问题。
无法判断引用数据类型,除了 Function 类型
typeof 1 // 'number'
typeof '1' // 'string'
typeof undefined // 'undefined'
typeof true // 'boolean'
typeof Symbol() // 'symbol'
typeof [] // 'object'
typeof {} // 'object'
typeof console.log // 'function'

instanceof

实质上是通过原型链来判断的,可以判断引用类型,通常情况下无法对基础数据类型进行判断(可以通过构造函数的方式来判断)
const Person = function() {}
const p1 = new Person()
p1 instanceof Person // true

var str = 'hello world'
str instanceof String // false

var str1 = new String('hello world')
str1 instanceof String // true

== 和 === 的区别?

  • 对于 String / Number 等基础数据类型

    == 表示 转化为同一类型的值后看是否相等

    === 表示 如果类型不同,其结果就是 false,同类型比较,值相同,那么结果为 true

  • 对于 Object / Array 等引用类型

    == 和 === 无区别,都是进行指针地址的比较

  • 如果是基础数据类型和引用类型相对比

    == 会将引用类型转换为基础数据类型,再进行值得比较

    === 由于类型不同,为 false

类型转换规则

看这里,之前总结过 👉

原型和原型链

看这里,之前总结过 👉

闭包

看这里,之前总结过 👉