随笔分类 -  现代JavaScript

Document 搜索:getElement*,querySelector*
摘要:搜索:getElement*,querySelector* 如何去获取页面上的任意元素? document.getElementById 或者只使用 id 如果一个元素有 id 特性(attribute),那我们就可以使用 document.getElementById(id) 方法获取该元素,无论 阅读全文

posted @ 2021-12-14 17:04 PerfectData 阅读(152) 评论(0) 推荐(0) 编辑

原型,继承 F.prototype
摘要:F.prototype 我们还记得,可以使用诸如 new F() 这样的构造函数来创建一个新对象。 如果 F.prototype 是一个对象,那么 new 操作符会使用它为新对象设置 [[Prototype]]。 请注意: JavaScript 从一开始就有了原型继承。这是 JavaScript 编 阅读全文

posted @ 2021-11-24 17:34 PerfectData 阅读(37) 评论(0) 推荐(0) 编辑

原型,继承 原型继承
摘要:原型继承 在编程中,我们经常会想获取并扩展一些东西。 例如,我们有一个 user 对象及其属性和方法,并希望将 admin 和 guest 作为基于 user 稍加修改的变体。我们想重用 user 中的内容,而不是复制/重新实现它的方法,而只是在其之上构建一个新的对象。 原型继承(Prototypa 阅读全文

posted @ 2021-11-24 17:06 PerfectData 阅读(46) 评论(0) 推荐(0) 编辑

对象属性配置 属性的 getter 和 setter
摘要:属性的 getter 和 setter 有两种类型的对象属性。 第一种是 数据属性。我们已经知道如何使用它们了。到目前为止,我们使用过的所有属性都是数据属性。 第二种类型的属性是新东西。它是 访问器属性(accessor properties)。它们本质上是用于获取和设置值的函数,但从外部代码来看就 阅读全文

posted @ 2021-11-24 16:23 PerfectData 阅读(484) 评论(0) 推荐(0) 编辑

对象属性配置 属性标志和属性描述符
摘要:属性标志和属性描述符 我们知道,对象可以存储属性。 到目前为止,属性对我们来说只是一个简单的“键值”对。但对象属性实际上是更灵活且更强大的东西。 在本章中,我们将学习其他配置选项,在下一章中,我们将学习如何将它们无形地转换为 getter/setter 函数。 属性标志 对象属性(propertie 阅读全文

posted @ 2021-11-24 15:47 PerfectData 阅读(114) 评论(0) 推荐(0) 编辑

函数进阶内容 调度:setTimeout 和 setInterval
摘要:调度:setTimeout 和 setInterval 有时我们并不想立即执行一个函数,而是等待特定一段时间之后再执行。这就是所谓的“计划调用(scheduling a call)”。 目前有两种方式可以实现: setTimeout 允许我们将函数推迟到一段时间间隔之后再执行。 setInterva 阅读全文

posted @ 2021-11-23 13:19 PerfectData 阅读(125) 评论(0) 推荐(0) 编辑

函数进阶内容 "new Function" 语法
摘要:"new Function" 语法 还有一种创建函数的方法。它很少被使用,但有些时候只能选择它。 语法 创建函数的语法: let func = new Function ([arg1, arg2, ...argN], functionBody); 该函数是通过使用参数 arg1...argN 和给定 阅读全文

posted @ 2021-11-23 11:30 PerfectData 阅读(460) 评论(0) 推荐(0) 编辑

JS函数调用(4种方法)
摘要:JavaScript 提供了 4 种函数调用:一般形式的函数调用、作为对象的方法调用、使用 call 和 apply 动态调用、使用 new 间接调用。 一般形式的函数调用 在默认状态下,函数是不会被执行的。使用小括号()可以激活并执行函数。在小括号中可以包含零个或多个参数,参数之间通过逗号进行分隔 阅读全文

posted @ 2021-11-22 15:58 PerfectData 阅读(3007) 评论(0) 推荐(0) 编辑

函数进阶内容 函数对象,NFE
摘要:函数对象,NFE 我们已经知道,在 JavaScript 中,函数就是值。 JavaScript 中的每个值都有一种类型,那么函数是什么类型呢? 在 JavaScript 中,函数就是对象。 一个容易理解的方式是把函数想象成可被调用的“行为对象(action object)”。我们不仅可以调用它们, 阅读全文

posted @ 2021-11-22 11:08 PerfectData 阅读(317) 评论(0) 推荐(0) 编辑

函数进阶内容 全局对象
摘要:全局对象 全局对象提供可在任何地方使用的变量和函数。默认情况下,这些全局变量内置于语言或环境中。 在浏览器中,它的名字是 “window”,对 Node.js 而言,它的名字是 “global”,其它环境可能用的是别的名字。 最近,globalThis 被作为全局对象的标准名称加入到了 JavaSc 阅读全文

posted @ 2021-11-22 11:04 PerfectData 阅读(39) 评论(0) 推荐(0) 编辑

函数进阶内容 旧时的 "var"
摘要:旧时的 "var" 本文用于帮助理解旧脚本 本文所讲的内容对于帮助理解旧脚本很有用。 但这不是我们编写新代码的方式。 在本教程最开始那部分的 变量 这章中,我们提到了变量声明的三种方式: let const var var 声明与 let 相似。大部分情况下,我们可以用 let 代替 var 或者  阅读全文

posted @ 2021-11-22 10:59 PerfectData 阅读(115) 评论(0) 推荐(0) 编辑

函数进阶内容 变量作用域,闭包
摘要:变量作用域,闭包 JavaScript 是一种非常面向函数的语言。它给了我们很大的自由度。在 JavaScript 中,我们可以随时创建函数,可以将函数作为参数传递给另一个函数,并在完全不同的代码位置进行调用。 我们已经知道函数可以访问其外部的变量。 但是,如果在函数被创建之后,外部变量发生了变化会 阅读全文

posted @ 2021-11-22 10:50 PerfectData 阅读(42) 评论(0) 推荐(0) 编辑

函数进阶内容 Rest 参数与 Spread 语法
摘要:Rest 参数与 Spread 语法 在 JavaScript 中,很多内建函数都支持传入任意数量的参数。 例如: Math.max(arg1, arg2, ..., argN) —— 返回入参中的最大值。 Object.assign(dest, src1, ..., srcN) —— 依次将属性从 阅读全文

posted @ 2021-11-22 10:49 PerfectData 阅读(105) 评论(0) 推荐(0) 编辑

函数进阶内容 递归和堆栈
摘要:递归和堆栈 让我们回到函数,进行更深入的研究。 我们的第一个主题是 递归(recursion)。 如果你不是刚接触编程,那么你可能已经很熟悉它了,那么你可以跳过这一章。 递归是一种编程模式,在一个任务可以自然地拆分成多个相同类型但更简单的任务的情况下非常有用。或者,在一个任务可以简化为一个简单的行为 阅读全文

posted @ 2021-11-22 10:46 PerfectData 阅读(44) 评论(0) 推荐(0) 编辑

数据类型 JSON 方法,toJSON
摘要:JSON 方法,toJSON 假设我们有一个复杂的对象,我们希望将其转换为字符串,以通过网络发送,或者只是为了在日志中输出它。 当然,这样的字符串应该包含所有重要的属性。 我们可以像这样实现转换: let user = { name: "John", age: 30, toString() { re 阅读全文

posted @ 2021-11-16 17:38 PerfectData 阅读(2596) 评论(0) 推荐(0) 编辑

数据类型 日期和时间
摘要:日期和时间 让我一起学习一个新的内建对象:日期(Date)。该对象存储日期和时间,并提供了日期/时间的管理方法。 例如,我们可以使用它来存储创建/修改时间,或者用来测量时间,再或者仅用来打印当前时间。 创建 创建一个新的 Date 对象,只需要调用 new Date(),在调用时可以带有下面这些参数 阅读全文

posted @ 2021-11-16 11:37 PerfectData 阅读(110) 评论(0) 推荐(0) 编辑

数据类型 解构赋值
摘要:解构赋值 JavaScript 中最常用的两种数据结构是 Object 和 Array。 对象让我们能够创建通过键来存储数据项的单个实体,数组则让我们能够将数据收集到一个有序的集合中。 但是,当我们把它们传递给函数时,它可能不需要一个整体的对象/数组,而是需要单个块。 解构赋值 是一种特殊的语法,它 阅读全文

posted @ 2021-11-15 15:47 PerfectData 阅读(148) 评论(0) 推荐(0) 编辑

数据类型 Object.keys,values,entries
摘要:Object.keys,values,entries 对各个数据结构的学习至此告一段落,下面让我们讨论一下如何迭代它们。 在前面的章节中,我们认识了 map.keys(),map.values() 和 map.entries() 方法。 这些方法是通用的,有一个共同的约定来将它们用于各种数据结构。如 阅读全文

posted @ 2021-11-05 15:46 PerfectData 阅读(220) 评论(0) 推荐(0) 编辑

数据类型 WeakMap and WeakSet(弱映射和弱集合)
摘要:数据类型 WeakMap and WeakSet(弱映射和弱集合)我们从前面的 垃圾回收 章节中知道,JavaScript 引擎在值可访问(并可能被使用)时将其存储在内存中。 例如: let john = { name: "John" }; // 该对象能被访问,john 是它的引用 // 覆盖引用 阅读全文

posted @ 2021-11-05 10:02 PerfectData 阅读(85) 评论(0) 推荐(0) 编辑

数据类型 Map and Set(映射和集合)
摘要:数据类型 Map and Set(映射和集合) MapMap 是一个带键的数据项的集合,就像一个 Object 一样。 但是它们最大的差别是 Map 允许任何类型的键(key)。 它的方法和属性如下: new Map() —— 创建 map。map.set(key, value) —— 根据键存储值 阅读全文

posted @ 2021-11-03 14:32 PerfectData 阅读(154) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示