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