第七章 数组
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文件。模块文件可以包含一个类定义、一组相关的类、一个实用的函数库或者一些待执行的代码。
 

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

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

    第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义     a 事件类型(event type)     b 事件目标(event target) target ...

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

    第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.   第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区 ...

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

    第十五章 脚本化文档   1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...

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

    第十三章 Web浏览器中的JavaScript 1 在Html文档中嵌入客户端4种JS代码方法     a 内联方式,放置在<script>标签之间     b 放置在<script ...

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

    第四章 表达式和运算符 1 new调用构造函数的过程     a 创建一个新的空对象     b 设置空对象的_proto_指向构造函数原型prototype     c 将这个新对象当做this的值 ...

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

    第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符     a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字 ...

  7. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  8. css权威指南读书笔记

    今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...

  9. Hadoop权威指南学习笔记三

    HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...

随机推荐

  1. centos7安装python3.6独立的virtualenv环境

    centos7安装python3.6独立的virtualenv环境 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bzip2-devel opens ...

  2. 多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中【我】

    多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中 package com.xxx.xx.reve.service; import java.util.ArrayL ...

  3. RabbitMQ 入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)

    发布/订阅 在上篇第二部分教程中,我们搭建了一个工作队列.每个任务之分发给一个工作者(worker).在本篇教程中,我们要做的之前完全不一样——分发一个消息给多个消费者(consumers).这种模式 ...

  4. Spring MVC 实例:Excel视图的使用

    对于Excel而言,Spring MVC所推荐的是使用AbstractXlsView,它实现了视图接口,从其命名也可以知道它只是一个抽象类,不能生成实例对象.它自己定义了一个抽象方法——buildEx ...

  5. 如何让winrar5压缩的文件能用低版本winrar打开

    https://jingyan.baidu.com/article/39810a2348ab24b636fda681.html 在压缩文件格式选项处点选[RAR4]选项,即之前版本的winrar支持的 ...

  6. systemctl service

    一.systemctl常用命令 systemctl list-units            ##列出当前系统服务的状态 systemctl list-unit-files       ##列出服务 ...

  7. LODOP中带caption的表格被关联并次页偏移测试

    ADD_PRINT_TABLE中的thead和tfoot可以每页输出,后面的打印项关联表格,可以紧跟着表格,实现在表格后面紧跟着输出内容的效果,表格可以自动分页,并总是跟在表格后面 ,在表格最后输出. ...

  8. AI - TensorFlow - 示例04:过拟合与欠拟合

    过拟合与欠拟合(Overfitting and underfitting) 官网示例:https://www.tensorflow.org/tutorials/keras/overfit_and_un ...

  9. (一)SpringBoot Demo之 Hello World

    文章目录 最终效果 pom文件编写 编写资源类 编写控制器 运行项目 原文 : https://spring.io/guides/gs/rest-service/ 类型:官网入门指南 要求:JDK1. ...

  10. 20191104-基于Python计数排序算法分析

    计数排序 计数排序算法没有用到元素间的比较,它利用元素的实际值来确定它们在输出数组中的位置,也就是说元素从未排序状态变为已排序状态的过程,是由额外空间的辅助和元素本身的值决定的,将每个元素出现的次数记 ...