JS权威指南读书笔记(三)

第七章 数组

1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多。

2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个。

3 调用构造函数创建数组

a 调用时没有参数 => 空数组

b 调用时有一个数值参数 => 指定长度的数组

c 显式指定两个或多个数组元素或一个非数值元素 => 参数成为新数组的元素

4 稀疏数组:包含从0开始的不连续索引(即 ‘索引值‘ in ‘数组‘ 运算返回 false)的数组。可以用Array构造函数或简单地指定数组的索引值大于当前的数组长度或用delete运算符来创建稀疏数组。

5 数组元素的添加和删除

a 为新索引赋值

b push unshift(头尾插入)

c pop shift(头尾删除)

d splice(startIndex, deleteCount, insertItems...) 插入、删除或替换

6 数组常用方法(红色标注方法会改变原数组结构):

a join() 将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串;

b reverse() 将数组中的元素颠倒顺序;

c sort() 将数组中的元素排序并返回排序后的数组;

d concat() 创建并返回一个新数组;

e slice() 返回指定数组的一个片段或子数组;

f splice() 在数组中插入或删除元素;

g push() unshift() pop() shift() 注意,当使用多个参数调用unshift()时,参数是一次性插入的(类似splice方法);

7 ES5数组方法(第一个参数接收一个函数,对数组的每个元素调用一次该函数,如果是稀疏数组,对不存在的元素不调用传递的函数):

forEach() map()

filter() 注意:filter会跳过稀疏数组缺少的元素,它的返回数组总是稠密的;

every() some() 注意:在空数组上调用时,every返回true,some返回false;

reduce() reduceRight() 注意:在空数组上,不带初始值参数调用reduce将导致类型错误异常;

indexOf() lastIndexOf() 搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没有找到返回-1

8 Array.isArray() 或者 Object.prototype.toString.call()

9 一种常常完全合理的看法把拥有一个数值length属性和对应非负整数属性的对象看做一种类型的数组。

第八章 函数

1 以表达式方式定义的函数。函数的名称的可选的,一条函数声明语句实际上声明了一个变量,并把一个函数对象赋值给它。如果一个函数定义表达式包含名称,函数的局部作用域会包含一个绑定到函数对象的名称。实际上,函数的名称将成为函数内部的一个局部变量。

2 函数调用的方式

a 函数调用

b 方法调用

c 构造函数调用

d call() 和 apply() 间接调用

3 函数调用的调用上下文在非严格模式下,是全局对象,在严格模式下,是undefined。这种模式的区分经常看到,比如call或者apply的第一个参数。定义并调用一个函数来确定当前脚本运行时是否为严格模式

var strict = function () { return !this; }

4 关键字this没有作用域的限制,嵌套的函数不会从调用它的函数中继承this。如果嵌套函数作为方法调用,其this的值指向调用它的对象;如果嵌套函数作为函数调用,其this值不是全局对象就是undefined。

5 凡是没有形参的构造函数调用都可以省略圆括号。

6 如果构造函数使用return语句,没有返回值,或者返回一个原始值,那么将忽略返回值,同时使用这个新对象作为调用结果。

7 ECMA规定,arguments对象callee属性指代当前正在执行的函数,caller是非标准的,指代调用当前正在执行的函数的函数。

8 函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的。这解释了,函数返回,属性中包含多个函数的对象,共享同一个作用域链。

9 在函数体内,arguments.length表示传入函数的实参的个数;而函数本身的length属性代表函数形参的数量。

10 传入apply() 的参数数组可以是类数组对象也可以是真实数组。

11 真正的bind() 方法返回一个函数对象,它的length属性是绑定函数的形参个数减去绑定实参的个数。

12 Function构造函数,最后一个实参所表示的文本就是函数体。函数体的代码编译总是会在顶层函数执行。

第九章 类和模块

1 原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,它们台式属于同一个类的实例。两个不同的构造函数,可能它们的原型prototype指向同一个对象,那么它们所创造的实例是属于同一个类的。

2 instanceof 不会检查实例是否有构造函数初始化而来,而是检查实例是否继承自构造函数的原型prototype。

3 鸭式辩形:不要关注 对象的类是什么,而是关注 对象能做什么。

4 一般来讲,模块是一个独立的JS文件。模块文件可以包含一个类定义、一组相关的类、一个实用的函数库或者一些待执行的代码。

时间: 2024-12-20 19:24:55

JS权威指南读书笔记(三)的相关文章

JS权威指南读书笔记(一)

第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格. 第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区分大小写的,但是Html并不区分大小写. 3 JS会忽略程序中标识之间的空格,多数情况下,同样会忽略换行符. 4 回车符(\u000D)和换行符(\u000A)在一起被解析为一个单行结束符. 5 空格.换行符和格式控制符可以用在JS的注释.字符串直接量和正则表达式直接量中,但不能用在标识符中. 6 Un

JS权威指南读书笔记(七)

第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义 a 事件类型(event type) b 事件目标(event target) target === srcElement(IE8及之前版本) c 事件处理程序(event handler ) 当对象上注册的事件处理程序被调用时,可以说浏览器触发(fire trigger)和派发(dispatch)了事件: d 事件对象(event object) e 事件传播(event propagation)两种形

JS权威指南读书笔记(五)

第十三章 Web浏览器中的JavaScript 1 在Html文档中嵌入客户端4种JS代码方法 a 内联方式,放置在<script>标签之间 b 放置在<script>标签 src 属性指定的外部文件中 c 放置在HTML事件处理程序中 d 放置在URL中,"javascript:" 协议 2 在XHTML中,script标签中内容将被当做其他内容,如果JS代码包含了"<" 或 "&"字符,那么这些字符将被解

JS权威指南读书笔记(六)

第十五章 脚本化文档 1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子类型. 3 getElementsByNames() 定义在HTMLDocument类中,而不是Document(文档可能代表HTML也可能代表XML) 类中,所以只针对HTML文档可用. 4 由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点.例如:images.forms

JS权威指南读书笔记(二)

第四章 表达式和运算符 1 new调用构造函数的过程 a 创建一个新的空对象 b 设置空对象的_proto_指向构造函数原型prototype c 将这个新对象当做this的值来调用构造函数 d 如果构造函数不返回一个对象值,则返回新对象 2 左值:表示存储在计算机内存的对象. 3 除数为0的运算结果是正无穷大或负无穷大,0/0的结果是NaN. 4 位运算符会将NaN.Infinity和-Infinity都转换为0. 5 in运算符希望它的左操作数是一个字符串或可以转换为字符串,右操作数是一个对

JS权威指南读书笔记(四)

第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符 a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字面含义进行匹配的,非字母的字符需要通过反斜线(\)作为前缀进行转义. 3 字符类:将直接量字符单独放进方括号内就组成了字符类.一个字符类可以匹配它所包含的任意字符. 转义符\b 具有特殊含义,当用在字符类中,它表示退格符,所以一个元素的字符类[\b]表示一个退格符. 4 重复 5 在待匹配的字符后跟随一个问号(?),

Hadoop权威指南读书笔记

本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系统. MapReduce:分布式数据处理模型和执行环境,运行于大型商业集群. HDFS:分布式文件系统,运行于大型商用机集群. Pig:一种数据流语言和运行环境,用以检索非常大的数据集.Pig运行在MapReduce和HDFS的集群上. Hive:一个分布式.按列存储的数据仓库.Hive管理HDFS

IDA.Pro权威指南 读书笔记

http://www.pediy.com/kssd/pediy12/142766.html 标 题:IDA.Pro权威指南 读书笔记[Made By C_lemon] 作 者:Dstlemoner 时 间:2011-11-14 11:56:17 链 接:http://bbs.pediy.com/showthread.php?t=142766    IDA为反汇编 和逆向破解的 静态分析利器 ! 虽然是利器,但是你不会用的话~那就另当别论了. →     唉.对于刚入门的新手来说,看前人走过的路程

Android编程权威指南-读书笔记(二)-第一个小程序

Android编程权威指南-读书笔记(二) -第一个小程序 第一个例子介绍 应用名为GeoQuiz.用户通过单击True或False按钮来回答屏幕上的问题,GeoQuiz可即时反馈答案正确与否. 这个例子为我们简单介绍了几个基本组件的使用,以及基本的事件监听.让我们对基本组件的使用和事件的监听有一个基本的了解. 这篇文章分为2个部分,第一部分就是创建简单的UI.第二个部分就是对这个UI增加代码来响应一些操作. (注:所有不明白或者不理解的东西其实都不重要,后面都会有更详细的介绍.) 本章的目标