文章

Deep Understanding JavaScript 即时笔记
2017/12/20

  • 在 JavaScript 中所有的值都有属性。通过点(.)操作符可以读取。
  • JavaScript 中原始值包括布尔值、数字、字符串、UndefinedNull,其他的值都是对象。
  • 原始值只要编码值相同便相等,对象只在同一引用源下相等。
  • 原始值的属性无法更改、添加、移除,对象的属性可以被自由的更改、添加、移除。
  • 所有的非原始值都是对象。
  • Undefined(没有值):
    • 声明后未赋值的变量。
    • 未带入参数。
    • 访问不存在的属性。
  • Null(没有对象)
  • UndefinedNull 都没有属性。
  • Undefined, Null, false, 0, NaN 和 '' 都被视为 false 。
  • typeof 用于原始值,instanceof 用于对象。
  • JavaScript 中所有的数字都是浮点数。
  • 函数声明以及 var 声明会提升到作用域的开始处,var 赋值以及函数表达式不会被提升。
  • 闭包会持续的保持与外部变量的链接。
  • 以函数作为值的属性被称为方法。
  • bind() 方法提取对象方法,解决 this 指向错误问题。
  • bind() 更改 this 指向是永久的。
  • new 的作用:
    • 创建一个新的 obj
    • 为新的空对象设置 proto
    • constructorthis 指向新的 obj
    • 返回新的 obj
  • Object.setPrototypeOf(子,父)