Skip to content

Latest commit

 

History

History
61 lines (32 loc) · 1.79 KB

0328JS.md

File metadata and controls

61 lines (32 loc) · 1.79 KB

 #什么是Symbol? Symbol是ES6新增的一种数据类型,在使用Symbol进行对象创建时不需要加new操作符。Symbol可以用来处理字符串耦合,比如数据对象中有两个属性都用“李四”来命名,一个分数为50,一个分数为60,以李四查询值时返回最后一个李四,分数为60;而用Symbol创建对象属性,再进行查询,可以分别查出两个李四的成绩。 类似于定义一个身份证号(很难重复)通过身份证来查询成绩,不同李四有不同成绩。原本按姓名查找,只能查出晚出生的李四的成绩。 #八种数据类型

  1. 新增的Symbol,BigInt
  2. 原有的Number,Null,Underfined,Boolean,String,Object

数据类型检测的方法

  1. typeof 1 null,数组对象都为Object
  2. 1 instanceof Number =>false instanceof 检测引用数据类型,不能判断基本数据类型
  3. (x).constructor===Number
  4. 通过Object.prototype.toString.call()

判断数组的方式

  1. Object.prototype.toString.call()
  2. obj.proto===Array.prototype
  3. Array.isArray(XX)
  4. obj instanceof Array
  5. Array.prototype.isPrototype(obj)

#null和undefined的区别 null是空对象,undefined是未定义

#typeof null的结果是什么 是Object,因为类型存储时,Object的类型机器码为000,而null的值也全为0

#call,apply,bind 把自己的方法给别人用。 把自己的充电宝chargeBao给别人用。 帮别人冲到100 haveChargePerson.chargeBao.call(noChargePerson,100) apply把后面参数改为数组形式haveChargePerson.chargeBao.call(noChargePerson,[100]) bind会以函数形式返回 haveChargePerson.chargeBao.call(noChargePerson)(100)

let fun=haveChargePerson.chargeBao.call(noChargePerson) fun(100)