06 2022 档案

摘要:一、基本介绍(理解迭代) 在JavaScript中,计数循环就是一种最简单的迭代: for (let i=1;i<=10;++i){ console.log(i); } 循环时迭代机制的基础,这是因为它可以指定迭代的次数,以及每次迭代要执行什么操作,每次循环都会在下一次迭代开始之前完成,而每次迭代的 阅读全文
posted @ 2022-06-27 16:54 Jaetyn 阅读(527) 评论(0) 推荐(0) 编辑
摘要:一、基本概念 迭代器就是为实现对不同集合进行统一遍历操作的一种机制,只要给需要遍历的数据结构部署Iterator接口,通过调用该接口,或者使用消耗该接口的API实现遍历操作。 Symbol的概念:“以操作目标为程序本身的行为特性的编程,我们称为元编程。” 二、Symbol的特殊性 1)Symbol属 阅读全文
posted @ 2022-06-27 11:08 Jaetyn 阅读(2504) 评论(0) 推荐(0) 编辑
摘要:一、基本介绍 ES6新增的“弱集合”是一种新的集合类型,为这门语言带来了集合数据结构。WeakSet是Set的“兄弟"类型,其API也是Set的子集。WeakSet中的”weak“(弱),描述的是JavaScript垃圾回收程序对待”弱集合”中值的方式。 二、基本API 可以使用new关键字实例化一 阅读全文
posted @ 2022-06-25 17:40 Jaetyn 阅读(473) 评论(0) 推荐(0) 编辑
摘要:一、基本介绍 ES6新增的Set是一种新集合类型,为这门语言带来了集合数据结构。Set在很多方面都像是加强的Map,这是因为它们的大多数API和行为都是共有的。 二、基本API 使用new关键字和Set构造函数可以创建一个空集合: const m=new Set(); 如果想在创建的同时初始化实例, 阅读全文
posted @ 2022-06-25 15:54 Jaetyn 阅读(1330) 评论(0) 推荐(0) 编辑
摘要:一、WeakMap起源 ES6新增的“弱映射(WeakMap)是一种新的集合类型,为这门语言带来了增强的键/值对存储机制。WeakMap是Map的“兄弟类型””,其API也是Map的子集。WeakMap中的“weak”(弱),描述的是JavaScript垃圾回收程序对待“弱映射”中键的方式。 二、基 阅读全文
posted @ 2022-06-25 11:52 Jaetyn 阅读(2226) 评论(0) 推荐(0) 编辑
摘要:一、介绍 对于多数web开发任务来说,选择Object还是Map只是个人偏好问题,影响不大。不过,对于在乎内存和性能的开发者来说,对象和映射之间确实存在显著的差别。 二、内存占用 Object和Map的工程级实现在不同浏览器间存在明显差异,但存储单个键/值对所占用的内存数量都会随着键的数量线性增加。 阅读全文
posted @ 2022-06-24 11:29 Jaetyn 阅读(350) 评论(0) 推荐(0) 编辑
摘要:一、基本介绍 ECMAScript6以前,在JavaScript中实现“键/值”式存储可以使用Object来方便高效地完成,也就是使用对象属性作为键,再使用属性来引用值。但这种实现并非没有问题,为此TC39委员会专门为“键/值”存储定义了一个规范。 作为ES6的新增特性,Map是一种新的集合类型,为 阅读全文
posted @ 2022-06-24 10:30 Jaetyn 阅读(17526) 评论(0) 推荐(0) 编辑
摘要:定型数组(typed array)是ECMAScript新增的结构,目的是提升向原生库传输数据的效率。实际上,JavaScript并没有”TypedArray“类型,它所指的其实是一种特殊的包含数值类型的数组。为理解如何使用定型数组,有必要先了解一下它的用途。 ①ArrayBuffer Float3 阅读全文
posted @ 2022-06-22 19:53 Jaetyn 阅读(442) 评论(0) 推荐(0) 编辑
摘要:一、基本介绍 ECMAScript为数组提供了两个归并方法:reduce()和reduceRight()。这两个方法都会迭代数组的所有项,并在此基础上构建一个最终返回值。reduce()方法从数组第一项开始遍历到最后一项。而reduceRight()从最后一项开始遍历至第一项。 这两个方法都接收两个 阅读全文
posted @ 2022-06-22 16:39 Jaetyn 阅读(478) 评论(0) 推荐(0) 编辑
摘要:数组的五个迭代方法如下: ①every():对数组每一项都运行传入的函数,如果对每一项函数都返回ture,则这个方法返回true。 ②filter():对数组每一项都运行传入的函数,函数返回true的项会组成数组之后返回。 ③forEach():对数组每一项都运行传入的函数,没有返回值。 注意:不支 阅读全文
posted @ 2022-06-22 16:01 Jaetyn 阅读(1107) 评论(0) 推荐(0) 编辑
摘要:valueOf和toString两个函数 是number、string、boolean、object、symbol原型链上共有的函数(null和undefined两种数据类型没有) 这两个函数主要是用来干什么的呢?答:值运算和显示问题,一般在隐式类型转换时会自动调用。 1、对于number、stri 阅读全文
posted @ 2022-06-21 19:52 Jaetyn 阅读(223) 评论(0) 推荐(0) 编辑
摘要:一、Array 除了Object,Array应该就是ECMAScript中最常用的类型了。ECMAScript数组跟其他编程语言的数组有很大区别。跟其他语言中的数组一样,ECMAScripte数组也是一组有序的数据,但跟其他语言不同的是,数组中每个槽位可以存储任意类型的数据。这意味着可以创建一个数组 阅读全文
posted @ 2022-06-21 14:06 Jaetyn 阅读(119) 评论(0) 推荐(0) 编辑
摘要:ESMA-262内置对象的定义是“任何由ECMAScript实现提供、与宿主环境无关,并在ECMAScript程序开始执行时就存在的对象”。这就意味着,开发者不用显式实例化内置对象,因为它们已经实例化好了。前面我们已经接触了大部分内置对象,包括Object、Array和String。本节介绍ECMA 阅读全文
posted @ 2022-06-21 08:51 Jaetyn 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1.concat 2.slice()、substr()、substring() 3.字符串位置方法 4.字符串包含方法 5.trim()方法 6.repeat()方法 7.padStart和padEnd()方法 8.字符串迭代与解构 9.字符串大小写转换 10.字符串模式匹配方法 11.locale 阅读全文
posted @ 2022-06-20 11:41 Jaetyn 阅读(493) 评论(0) 推荐(0) 编辑
摘要:一、typeof 可以对基本数据类型进行判断,返回的是基本数据对应的字符串名称,如果是引用数据类型返回的则是object typeof 'hello' // 'string' typeof 312 // 'number' typeof NaN // 'number' typeof true // ' 阅读全文
posted @ 2022-06-18 19:53 Jaetyn 阅读(34) 评论(0) 推荐(0) 编辑
摘要:引言:为了方便操作原始值,ECMAScript提供了3种特殊的引用类型:Boolean、Number和String。这些类型具有其他引用类型一样的特点,但也具有与各自原始类型对应的特殊行为。每当用到某个原始值的方法或者属性时候,后台都会创建一个相应原始包装类型的对象,从而暴露出操作原始值的各种方法。 阅读全文
posted @ 2022-06-18 19:39 Jaetyn 阅读(45) 评论(0) 推荐(0) 编辑
摘要:内存管理篇 ①Chrome浏览器引擎 ②内存泄漏 ③静态分配与对象池 1.Chrome浏览器的V8 JavaScript引擎 在初始化对象的时候,V8引擎会创建一个隐藏类,随后在程序运行过程中每次增减属性,就会创建一个新的隐藏类或者查找之前已经创建好的隐藏类。每个隐藏类都会记录对应属性在内存中的偏移 阅读全文
posted @ 2022-06-18 19:29 Jaetyn 阅读(315) 评论(0) 推荐(0) 编辑
摘要:1.首先for of不能迭代普通对象 for…of 语句在 可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。 for of只能遍历和迭代对象。 要成为可迭代对象, 一 阅读全文
posted @ 2022-06-16 12:49 Jaetyn 阅读(199) 评论(0) 推荐(0) 编辑
摘要:1.模板字面量也支持定义标签函数,而通过标签函数可以自定义插值行为。标签函数会接收被插值记号分隔后的模板和对每个表达式求值的结果。 2.标签函数本身是一个常规函数,通过前缀到模板字面量来应用自定义行为,如下例所示。标签函数接收到的参数依次是原始字符串数组和对每个表达式求值的结果。这个函数的返回值是对 阅读全文
posted @ 2022-06-14 13:24 Jaetyn 阅读(213) 评论(0) 推荐(0) 编辑
摘要:一个经典案例: 0.1 + 0.2 !== 0.3;而是0.1 + 0.2 = 0.30000000000000004 JavaScript使用定义的Number类型来表示数字(没有区分int或float的类型),遵循IEEE 754的标准,用64位存储一个数。(1+11+52) 运算过程: 它们在 阅读全文
posted @ 2022-06-13 10:41 Jaetyn 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一、数据类型的分类 (1)基本数据类型 ①undefined(未初始化或者未定义) ②null(空对象指针) ③boolean ④number ⑤string ⑥symbol (2)复杂数据类型 ①object ②array ③date 二、判断数据类型的操作符 typeof 因为typeof 是一 阅读全文
posted @ 2022-06-12 22:27 Jaetyn 阅读(25) 评论(0) 推荐(0) 编辑
摘要:1.Var关键字 (1)Var声明作用域 如果使用var在函数内部定义了一个变量,就意味着该变量将在函数退出时被销毁 具体代码如下: function test(){ var message='hi'; //局部变量 } test(); console.log(message) //出错! 不过如果 阅读全文
posted @ 2022-06-12 20:57 Jaetyn 阅读(201) 评论(0) 推荐(0) 编辑