附录

以下几点总结了在阅读本书(和代码示例研究)过程中应该学会的内容。阅读每个要点,如果不理解,课返回本书中的相关内容。

  • 对象是由存储值得已命名属性组成的。
  • JavaScript 中的几乎所有对象都可以表现得像对象。复杂值是对象,原始值可以看作对象。这就是为什么会听到有人说JavaScript中所有的对象都是对象。
  • 对象是通过使用 new 关键字调用构造函数或者通过使用字面量表达式来创建。
  • 构造函数是对象(Function()对象),因此。在JavaScript中,对象创建对象。
    J* avaScript提供9个原生构造函数:object(),Array(),String(),Number(),Boolean(),Function(),Date(),RegExp()和Error()。在需要时,String()、Number()和Boolean()构造函数可以提fong原始值和对象包装器,以便原始值被当作对象时,他们可以表现得像对象。
  • null,undefined.”string”.10,true和false值都是原始值,没有对象属性,除非将他们看作对象。
  • 使用new关键字调用Object(),Array(),String(),Number(),Boolean(),Function(),Date(),RegExp()和Error()构造函数时,会创建一个对象,它被称为“复杂对象”或“引用对象”。
  • 原始形式的”string”、10、true和false值没有对象的特性,除非把它们用作对象,然后,JavaScript会在后台创建临时包装器对象,这种值就可以表现得像对象。
  • 原始值是通过值存储的,复制时是通过字面进行复制的。另一方面,复杂对象值是通过引用进行存储的,复制时是通过引用进行复制的。
  • 当原始值的值相等时,它们即相等,而复杂对象只有在引用相同值的情况下才是相等的。也就是说:都指向同一对象是,一个复杂值才等于另一个复杂值。
  • 由于复杂对象和引用的特性,JavaScript对象具有动态属性。
  • JavaScript是可变的,这意味着可以在任何时间操作原生对象和用户自定义的对象属性。
  • 可以使用点表示法或括号表示法获取、设置、更新对象的属性。当被操作的对象昂属性的名称采用表达式形式时,使用括号表示法非常方便[Array[‘prorotype’][‘join’].apply()].
  • 当查找对象属性时,查找链首先查看对象昂引用的属性;如果没找到,则继续在构造函数的prototype属性上进行查找;如果仍然找不到,由于原型拥有一个对象值并且该值是由Object()构造函数创建的,因此在Object()构造函数的prototype属性(Object.prototype)上进行查找。如果还是找不到,那么可以确定该属性为undefined.
  • 原型查找链表明了继承(也称为原型继承)在JavaScript中是如何实现的。
  • 由于对象属性查找链(也称为原型继承)的存在,因此所有对象都继承自Obejct(),因为prototype属性本身就是一个Object()对象。
    J* avaScript函数是一等公民:函数是拥有属性和值的对象。
  • 在函数内部使用this关键字时,它是一种用于引用包含该函数的对象的通过方法。
  • 在运行时基于调用函数所在的上下文,可以确定this的值。
  • 在全局作用域内使用this关键字时,this引用全局对象。
  • J avaScript将函数作为创建唯一作用域的方法。
  • JavaScript提供全局作用域,所有JavaScript代码都在这个作用域内。
    函数u(特别是封装函数)创建一个作用域链来解决变量查找问题。
  • 作用域链是基于代码的编写方式创建的,而不是基于调用函数所在的上下文。这使得函数即使从一个不同的上下文调用函数,也能够访问最初编写代码是所在的作用域,这背称为闭包。
  • 函数内部定义的函数表达式和变量,如果没有使用var声明,则都会变成全局属性。然而,函数作用域内部的函数语句仍在编写代码时所在的作用域内定义。
  • 全局作用域内定义的函数和变量(没有使用var),会成为全局对象的属性。
  • 全局作用域内定义的函数和变量(使用var),会成为全局变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值