10月08, 2019

每日学习 2019-10-08

一、关于js null 类型的问题

typeof null 会输出object,这其实是js一个历史悠久的Bug,在以前的32位的系统中,为了性能考虑使用低位存储变量的类型信息,000开头便代表对象,而null表示全为零,所以才错误的判断为object

typeof 除了null,其他显示的全是正确的类型

二、 关于object 类型

在js中除了六种原始类型,其他全是对象类型,原始类型存储的是值,对象类型存储的是地址(指针),当你创建一个对象类型的时候,计算机会在内存中为我们创建一个空间开存放值,但是我们要找到这个空间,这个空间会有一个地址(指针)

三、 关于 this

  1. 对于function函数来说,直接调用永远指向window
  2. object中的函数,谁调用它,谁就是它的this
  3. new 的方式来看,this被永远绑定在所赋值的对象上面,不会被任何方式改变了

四、 深拷贝

通常

JSON.parse(JSON.stringify(object))

能解决大部分的深拷贝,但是这种方式有下面几个局限性:

  1. 会忽略undefined
  2. 会忽略symbol
  3. 不能序列化函数(无法将函数专为可存储或传输的形式)
  4. 不能解决循环引用的对象

本文链接:http://h88829.top/post/2019-10-08.html

-- EOF --

Comments