1.系列介绍
第一节,讲解数据类型,及其常规的检测方法,数据存储形式,垃圾回收,包括面试中常常要求的手写的一些方法。
2.JS中数据类型
JS数据类型分为两大类:基本类型和引用类型。基本类型包含:
string, number. boolean, undefined, null, symbol六种;引用类型有:对象一种。
面试官:“那么什么是基本类型什么是引用类型呢?”
小明:“基本类型是简单的数据段,而引用类型是可能由多个值构成。
面试官:“那么简单类型和引用类型是如何存储的呢?”
小红:”简单类型按值访问,存储在内存栈中,引用类型,按引用访问,地址存储在栈中,内容存储在堆中。所以但进行简单类型复制的时候,复制的是一个值,而引用类型复制的时候复制的其实是一个引用地址,所以就有了深拷贝和浅拷贝一说。“
面试官:“回答的不错,下一题。”
3.检测数据类型
typeof
使用typeof能够检测出数据的类型,当检测基本类型的时候很好用,但是无法检测出对象的具体类型,例如Date和RegExp.看下面的示例。
typeof '1' === 'string'
typeof 1 === 'number'
typeof {} === 'object'
typeof undefined === 'undefined'
typeof null === 'object' // null被认为是一个空对象
typeof Symbol(1) === 'symbol'
typeof NaN === 'number'
typeof Function === 'function'
typeof true === 'boolean'
typeof能够返回的类型有以上几种:string,number,object,function,undefined,symbol,boolean 七种,但是无法知道是不是数组等。
检测数组
检测数组提供了两个操作符,isArray和instanceof。
isArray
Array.isArray() 用于确定传递的值是否是一个 Array
Array.isArray([1,2,3]) // true
instanceof
用于检测 某个对象是否是某个构造函数的实例
[] instanceof Array // true
var a