首页 > JS高级程序设计第五章读书笔记

JS高级程序设计第五章读书笔记

1.引用类型的值(对象)是引用类型的一个实例。在ES中,引用类型是一种数据结构,用于将数据和功能组织在一起。它们也长被称为类,但这并不妥当。因为ES在技术层面上是一门面对对象的语言,但它并不具备传统的面向对象的语言所支持的了和接口等基本结构,引用类型有时候也被称为对象定义,因为他们描述的是一类对象所具有的属性和方法。
2.创建object实例的方式有两种,第一种是使用new操作符后跟object构造函数。另一种方式是使用对象字面两表示法。
3.ES数组除了与其他编程语言一样都是数据的有序列表外,不同的是,ES数组的而每一项都可以保存任何类型的数据。
4.创建数组的基本方式有两种。一种是Array构造函数。另一种则是使用数组字面量表示法。与对象的构建方法相同的是,在使用数组字面量表示法时,也不会调用Array构造函数。
5.instanceof操作符能解决某个对象是不是数组的问题,但如果一个网页存在多个框架,则会存在多个全局执行环境,就会有多个Array构造函数,如果一个数组从一个框架传向另一个框架,那么传入的数组与在第二个框架中原生创建的数组便具有了不同的构造函数。而ES5新增了Array.isArray()方法。这个方法可以无视在那个全局环境创建的,而得出是不是数组。
6.调用数组的tostring()会返回有数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。
7.在调用toLocaleString()方法时,他会创建一个数组值的一逗号分隔的字符串。
8.ES数组也提供了push()和pop()方法,以便实现类似与栈的行为(后进先出)。push()方法可以接受任意数量的参数,把他们添加到数组的末尾,并返回修改后数组的长度。而pop()方法,则会从数组末尾一处最后一项,减少数组的length值,然后返回移除的项。
9.数组还有shift()方法,它能够移除数组中的第一个项并返回该项。同时数组长度减1。
10.数组中已经存在两个可以直接用来重排序的方法:reverse()和sort()。其中reverse()方法会对方砖数组项的顺序。而sort()则默认按升序排列数组项,但sort()也会可以接受一个比较函数作为参数,以便我们指定那个值位于那个值得后面。
11.数组的concat方法可以基于当前数组中的所有项创建一个新数组。slice()则能够用基于当前数组的一过多个项创建一个新数组。
12.数组中的solice方法时最强大的数组方法。可以删除,插入,替换。其主要用途是想数组的中部插入项。
16.ES5为数组是咧添加了两个位置方法:indexOf()和lastIndexOf().这两个方法都接收两个参数:要查找的项和表示查找起点位置的索引。只不过前者在数组的开头找,后者在数组的末尾找。
17.ES5为数组定义了5个迭代方法。每个方法都接受两个参数:要在每一项上运行的函数与和(可选的)运行该函数的作用域对象——影响this的值。传入这些方法的函数会接收三个参数:数组项的值,该项在数组中的位置和数组对象本身。这五个迭代方法分别是:every();filter();foeEach();map();some()。
18.ES5海新增了两个缩小数组的方法:reduce()和reduceRight().这两个方法都会迭代数组的所有想,然后构建一个最终返回的值。两个方法都接受两个参数:一个在每一项上调用的函数和(可选)作为缩小基础的初始值。传给reduce()和reduceRight()的函数接受4个参数:前一个值,当前值,项的索引和数组对象。两个方法作用相同,但方向相反。
19.ES通过RegExp类型支持正则表达式。正则表达式的匹配模式支持下列3个标志:
g:表示全局模式,即模式将被应用于所有的字符串。而非在发现第一个匹配项立即停止。
i:表示不区分大小写模式,即在确定匹配项时忽略模式与字符串的大小写;
m:表示多行模式,即在到达一行文本末尾是还会继续查找下一行中是佛存在与模式匹配的项。
一个正则表达式就是一个模式和上述三个表示的组合体。不同的组合则会产生不同的结果。
20.RegRxp的每个是咧都会具有以下属性,通过这些属性可以取得有关模式的各种信息。
global:布尔值,表示是否设置了g标志。
ignoreCase:布尔值,表示是否设置了i标志。
lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起。
multiline:布尔值,表示是否设置m标志。
source:正则表达式的字符串表示。按照字面量形式传入构造函数中的字符串模式返回。
21.RegExp对象的主要方法是exec(),该方法是专门为捕获组而设计的。
22.由于函数是对象,英雌函数名实际上也是一个指向函数对象的指正,不会与某个函数绑定。又因为ES中的函数名本省是对象,所以函数也可以作为值来使用。
23.在函数内部,有两个特殊的对象:arguements和this。arguements是一个类数组对象,包含着传入函数中的所有参数。该对象还有一个叫callee的属性,是一个指针,可以返回正在执行的Functon对象。指向拥有argument对象的函数。this引用的是函数据以执行的环境对象。
24.ES中函数是对象,因此函数也有属性和方法。每个函数都包括两个属性:length和prototype.其中length属性表示函数希望接受的命名参数的个数。而在ES核心所定义的全部属性中,prototype最耐人寻味了。,对于ES中的引用类型而言,prototype是保存他们所有实例方法的真正所在。且该属性不能被枚举。
25.ECMA-262定义了两个单体内置对象Global和Math.
26.Global是全局对象。包含了URI编码方法和eval_r()方法。eval_r()是ES语言最强大的一个方法。只接受一个参数,即要执行的字符串。

转载于:https://www.cnblogs.com/srtain/p/6505216.html

更多相关:

  • 学习目标:了解什么是数组;数组如何访问内存地址(一维,二维);什么是数组是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储。利用元素的索引可以计算出该元素对应的存储地址。 最简单的数据结构类型是一维数组。数组如何实现随机访问?数组是一种线性表数据结构,用一直连续的内存空间来储存一组具有相同类型的数据。根据数组的特性(连...

  • 一、静态数据及动态数组的创建     静态数据:               int a[10];             int a[]={1,2,3};             数组的长度必须为常量。     动态数组:             int len;             int *a=new int...

  • 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val...

  • 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2],  函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2...

  • 文章目录1. 数组的声明2. 数组元素的遍历3. 数组的截取4. Go 语言的切片5. 数组 和 切片的共同点...

  • 来源:公众号|计算机视觉工坊(系投稿)作者:仲夏夜之星「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、...

  • 点云PCL免费知识星球,点云论文速读。文章:Real-Time LIDAR-Based Urban Road and Sidewalk Detection for Autonomous Vehicles作者:Ern˝o Horváth  , Claudiu Pozna ,and Miklós Unger编译:点云PCL代码:http...

  • 文章:Semantic Histogram Based Graph Matching for Real-Time Multi-Robot Global Localization in Large Scale Environment作者:Xiyue Guo, Junjie Hu, Junfeng Chen, Fuqin Deng, T...

  • 点云PCL免费知识星球,点云论文速读。文章:Robust Place Recognition using an Imaging Lidar作者:Tixiao Shan, Brendan Englot, Fabio Duarte, Carlo Ratti, and Daniela Rus编译:点云PCL(ICRA 2021)开源代码:...

  • 文章:A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays作者:Jens Grubert , Yuta Itoh, Kenneth Moser编译:点云PCL本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PD...

  • 草色新雨中, 松声晚窗里。之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作。虽然 PowerQuery 已经将大部分常用功能内置成到功能区。基本能完成我们大部分的报表自动化功能。但是总有些复杂的或者个性化的问题是开发团队没有预先想到的,这时我们就需要学习 M 语言。一、M 语言在哪里?M语言的函数公式有三个地...

  • 前言从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。基本概念表达式表...

  • 1.1函数1.1.1什么是函数函数就是程序实现模块化的基本单元,一般实现某一功能的集合。函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态。1.1.2函数的作用函数是组织好的,可重复使用的,用来...

  • 原标题:基于Python建立深度神经网络!你学会了嘛?图1 神经网络构造的例子(符号说明:上标[l]表示与第l层;上标(i)表示第i个例子;下标i表示矢量第i项)单层神经网络图2 单层神经网络示例神经元模型是先计算一个线性函数(z=Wx+b),接着再计算一个激活函数。一般来说,神经元模型的输出值是a=g(Wx+b),其中g是激活函数(...

  • 在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重。小编刚开始学习的时候也会有这个感觉。不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个。今天小编就把常用的函数汇总一下,为大家能够能好的学习MySQL中的函数。MySQL常使用的函数大概有四类。时间函数、数学函数、字符函数、控制函数。让我...