第一章 JavaScript对象

1.1 创建对象

JavaScript中的大多数值都是对象(基本数据类型称为原始值,但他们拥有等效包装器对象)。

JavaScript实际上是一种预包装若干原生对象构造函数的语言。这些构造函数用于生成一些特定类型值(如数字、字符串、函数、对象、数组等)的复杂对象
同样,也可以通过function()对象创建自定义的对象的构造函数。不管是否是用于创建对象的模式,产生的最终结果通常是创建一个复杂的对象。
理解对象的创建、本质、用法及其原始等价代码是本书其余部分的重点。

1.2 JavaScript构造函数构建并返回对象实例

1.3 JavaScript原生/内置对象构造函数

Number()
String()
Boolean()
Object()
Array()
Function()
Data()
RegExp()
Error()
!Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由JavaScript设置的对象命名空间,用于存储数学函数。

1.4 用户自定义/非原生对象构造函数

创建自定义构造函数只是在使用JavaScript本身在原生构造函数中所使用的相同模式。

  • 可以放弃使用 new 关键字和构造函数的概念,方法是使该函数显式的返回一个对象。必须显式地编并返回Object对象的函数:var myFuncrion = Function(){return {prop:val};.但是这样会避开原型继承的使用。

1.5 使用new操作符实例化构造函数

1.6 从构造函数创建字面量值

在一般情况下,使用字面量只是隐藏了与使用new操作符相同的基本过程。
但在原始字符串、数字和布尔值方面,字面量具有原始值的特点,而不是复杂对象的特点。

! 在针对字符串、数字和布尔值使用字面量值时,只有在该值被视为对象的情况下才会创建实际的复杂对象。换句话说,在尝试使用与构造函数有关的方法或检索属性(如var characterInfo = ‘foo’.length)之前,一直在使用原始数据类型,当这种情况发生时,JavaScript会在幕后为字面量值创建一个包装器对象(not constructor)以便该值被视为一个对象,调用方法以后,JavaScript即抛弃包装器对象,该值返回字面量类型。这就是数字、字符串和布尔值被认为是原始(或简单)数据类型原因。

1.7 原始值(或简单值)

5,”foo”,true,false,以及null和undefined等都被视为原始值,因为它们是不可细化的。

原始值是JavaScript中可用的数据/信息的最底层形式(即最简单的形式)。

! 在不使用new操作修饰符的情况下(var a = Number(10)),它返回实际复杂对象值得原始表示。

1.8 null,undefined,”strjing”,10,true和false等原始值不是对象

上面都是非常简单的值,他们不需要构造函数,也没有使用new操作符来将自己创建为JavaScript值。

原始值不是对象。原始值的特殊之处在于它们是用于表示简单值。

1.9 如何存储和复制原始值
原始值在“面值(face value)”中存储操作。原始值是真实值得复制。

如果我们复制了myString值并存储到myStringCopy变量中,当更新myString值时,myStringCopy值仍是旧myString值得副本。

1.10 原始值比较采用值比较

1.11原始值在被用作对象的时候就想对象

原始值被当作构造函数创建的一个对象来使用时,JavaScript会将其转换为一个对象,以便可以使用对象的特性或方法,而后抛弃对象性质,并将它变回到原始值。

1,12 复杂值(或组合值)
原生对象构造函数Object(),Array(),Function(),Date(),Error(),RegExp()是复杂类型。
因为它们可以包含一个或多个原始值或复杂值。
本质上,复杂值可以由很多不同类型的JavaScript对象组成。
复杂对象在其内存中大小是未知的。

! “复杂对象”这一术语在其他作品中也被表达为“符合对象”或“引用类型”。

1.13 如何存储或复制复杂值

复杂值是通过引用进行存储和操作的。实际上并不是复制对象,而是复制内存堆栈中对象的地址或引用。

若要真正地复制一个(复杂值)对象,必须要从旧的对象中提取值,并将提取的值注入新对象。

1.14 复杂对象比较采用引用比较

1.15 复杂对象具有动态属性

复杂对象支持动态对象是属性,因为我们可以定义对象,然后创建引用,再更新对象,并且所有指向该对象的变量都会“获得”更新。

1.16 typeof操作符

typeof操作符用于返回正在使用值的类型(返回值类型是string)。

原始值null的返回值是object,复杂值function()和RegExp()的返回值的function!

1.17 动态属性支持易变对象

复杂对象是由动态属性构成,这意味着JavaScript中的大多数对象都可以更新或更改,。正因为如此,可以通过增加原生对象,来改变JavaScript本身的原生预配置特性。

1.18 构造函数实例都拥有指向其构造函数的Constructor属性

对于用户自定义的构造函数表达式,如果想让constructor属性记录构造函数的实际名称,则必须给予构造函数表达式一个实际名称。(如 var Person = function Person(){};).

1.19 验证对象是否是特定构造函数的实例

原始值使用对象包装器,判断实例时,instanceof操作符将返回false。

instanceof只适用于构造函数创建返回的复杂对象和实例。

1.20 构造函数创建的实例可以拥有自己独立的属性

通过构造函数创建的对象实例只是普通对象。。

1.21 JavaScript对象和Object()对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《JavaScript DOM编程艺术》第二版是一本非常经典的前端开发书籍,由作者Jeremy Keith和Jeffrey Sambells合作编写而成。该书主要介绍了使用JavaScript和DOM技术进行网页开发的知识,涵盖了DOM操作、事件监听、表单验证、AJAX等内容。 本书首先讲解了DOM的基础知识,包括节点、元素、属性、文本等概念,并介绍了通过JavaScript对DOM进行操作的方法。然后,通过实例讲解了如何根据用户的交互行为来实现动态效果,如当用户点击某个按钮改变网页的背景色等。 此外,本书还介绍了如何利用AJAX技术进行异步数据交互,比如通过JavaScript动态加载内容等。同,本书也提供了一些工具和技巧来提高网页的性能和用户体验,比如浏览器兼容性、缓存、图片优化等。 总之,《JavaScript DOM编程艺术》第二版是一本前端开发必读的书籍,可以帮助读者全面掌握JavaScript和DOM技术,在开发网页提高效率和质量。而PDF版本的书籍更方便读者随随地学习,建议前端开发人员可以认真阅读和应用到实践中。 ### 回答2: 《JavaScript DOM编程艺术第二版》是一本深入浅出的JavaScript和DOM编程入门书籍,适合初学者学习。 该书共有18章,从JavaScript基础语法和DOM结构开始讲起,一步步引导读者学习Javascript与DOM编程。其中介绍了文档对象模型(DOM)的概念、DOM节点、节点属性与操作等重要知识点,并通过实例和练习帮助读者更好地理解如何使用DOM进行网页设计和开发。此外,书中还介绍了如何使用JavaScript制作动态网页、表单验证、浏览器兼容性问题等实用的开发技巧,为读者提供了丰富的编程经验。 书中使用简洁易懂的语言,结合大量实例和练习,让读者可以快速掌握JavaScript与DOM的核心概念和编程技巧。作者还在书中提供了很多实战案例,让读者可以将所学的知识应用到实际开发中,并且让读者更好地理解如何进行项目开发。 总之,《JavaScript DOM编程艺术第二版》是一本不可多得的优秀JavaScript与DOM编程入门教材,读者只需要具备基本的JavaScript和HTML/CSS知识,即可轻松掌握书中内容,快速提高前端开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值