第七章 数组
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. JS 数字相加出现多个小数的问题

    今天在页面上用到了js进行小数相加119.01+0.01,结果大家都知道应该是:119.02的,然而结果是119..0200000…. ,莫名其妙的,还以为是我写的程序有问题,后来查了下才知道这是ja ...

  2. training 2

    Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.136 Average Precision (AP) @[ IoU ...

  3. ES6深入浅出-8 新版的类(下集)-3.书籍推荐

  4. 【 Linux 】Systemd 使用说明(1)

    1. 前言 在 CentOS 7 中使用 systemd 取代了 init 的启动模式,这样的更新换代有什么好处呢?首先需要对 init 和 systemd 有个概念的认识. 2. init 概述 在 ...

  5. [转]Xmind 8 pro 软件破解版

    链接地址:https://blog.csdn.net/qq_16093323/article/details/80967867 作者博客:http://www.carrotchou.blog/

  6. C#中Request.servervariables参数

    整理一下,我在asp.net下遍历的Request.servervariables这上集合,得出的所有参数如下: : Request.ServerVariables["ALL_HTTP&qu ...

  7. 【ARTS】01_44_左耳听风-201900909~201900915

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  8. 爬虫存储介质之CSV文件存储

    本文章来自度娘 CSV文件存储 CSV,全称为Comma-Separated Values,中文可以叫做逗号分隔值或字符分隔值,其文件以纯文本形式 存储表格数据.该文件是一个字符序列,可以由任意数目的 ...

  9. nightwatch对前端做自动化测试

    记录node环境使用nightwatch.selenium-server.chromedriver对部署后的前端页面进行自动化测试的项目搭建过程. 1.目标 能对部署后的前端项目进行自动化测试,能自动 ...

  10. stm32片上ADC转换实验

    原理图所示: BAT_DET 接到PB0 引脚,VSYS 是直流3.7V的电压.再来看下103的adc转换和引脚GPIO的关系 我们直接选用ADC1 根据上表格只能使用通道8 下面给我常用的ADC1寄 ...