08 2021 档案

摘要:我们描述了ES6中添加的新类系统,用于处理创建对象构造函数的琐碎情况。我们展示了如何使用它来编写如下代码: class Circle { constructor(radius) { this.radius = radius; Circle.circlesMade++; }; static draw( 阅读全文
posted @ 2021-08-28 09:07 Max力出奇迹 阅读(158) 评论(0) 推荐(0)
摘要:JavaScript项目已经发展到令人瞠目结舌的规模,社区已经开发了用于大规模工作的工具。你需要的最基本的东西之一是一个模块系统,这是一种将你的工作分散到多个文件和目录的方法——但仍然要确保你的所有代码片段可以根据需要相互访问——而且还要能够有效地加载所有代码。所以很自然,JavaScript有一个 阅读全文
posted @ 2021-08-27 22:05 Max力出奇迹 阅读(347) 评论(0) 推荐(0)
摘要:当Brendan Eich在1995年设计了JavaScript的第一个版本时,他犯了很多错误,包括从那时起就成为该语言一部分的一些错误,比如Date对象和当你不小心将它们相乘时对象会自动转换为NaN。然而,事后看来,他做对的事情都是非常重要的事情:对象;原型;具有词法作用域的一级函数;默认可变性。 阅读全文
posted @ 2021-08-27 13:54 Max力出奇迹 阅读(292) 评论(0) 推荐(1)
摘要:我们将讨论一个老问题:在JavaScript中创建对象的构造函数。 存在的问题 假设我们想要创建最典型的面向对象设计的示例:Circle类。假设我们正在为一个简单的Canvas库编写一个Circle。除此之外,我们可能想知道如何做到以下几点: 在给定的画布Canvas上画一个给定的圆Circle。 阅读全文
posted @ 2021-08-26 20:01 Max力出奇迹 阅读(228) 评论(0) 推荐(1)
摘要:这就是我们今天要做的事情: var obj = new Proxy({}, { get: function (target, key, receiver) { console.log(`getting ${key}!`); return Reflect.get(target, key, receiv 阅读全文
posted @ 2021-08-26 11:43 Max力出奇迹 阅读(297) 评论(0) 推荐(0)
摘要:Rest参数 在创建API时,一个常见的需求是创建可变参数函数(参数个数不确定),这个函数可以接受任意数量的参数。例如,string.prototype.concat方法接受任意数量的字符串参数。通过使用rest参数,ES6提供了一种编写可变参数函数的新方法。 为了演示,让我们编写一个简单的可变参数 阅读全文
posted @ 2021-08-24 20:44 Max力出奇迹 阅读(294) 评论(0) 推荐(0)
摘要:一个简短的舞台剧 之前我们关注了生成器的基本行为。这可能有点奇怪,但并不难理解。生成器函数很像常规函数。主要的区别是生成器函数体不会一次全部运行。它每次运行一点,每次执行到yield表达式时暂停。在上一篇关于Generator的文章中有详细的解释,但我们从未做过一个完整的示例,说明所有部分是如何组合 阅读全文
posted @ 2021-08-24 17:32 Max力出奇迹 阅读(73) 评论(0) 推荐(0)
摘要:艰难的共同进化案例 JS不太像其他编程语言,有时这会以令人惊讶的方式影响语言的发展。ES6模块就是一个很好的例子。其他语言有模块系统。比如,Python有个非常好的模块系统。当标准委员会决定在ES6中添加模块时,他们为什么不直接复制现有的系统呢? JS是不同的,因为它是在web浏览器中运行的。I/O 阅读全文
posted @ 2021-08-24 13:41 Max力出奇迹 阅读(271) 评论(0) 推荐(0)
摘要:第七种类型 自从JavaScript在1997年首次标准化以来,已经有了六种类型。在ES6之前,JS程序中的每个值都属于这些类别之一: Undefined Null Boolean Number String Object 每种类型都是一组值。前五个集合都是有限的。当然,只有两个布尔值,true和f 阅读全文
posted @ 2021-08-24 09:33 Max力出奇迹 阅读(420) 评论(0) 推荐(0)
摘要:前世今生 <!-- 单行注释 箭头从一开始就是JavaScript的一部分。第一个JavaScript教程建议用HTML注释包装内联脚本。这将防止不支持JS的浏览器将JS代码错误地显示为文本。你可以这样写: <script language="javascript"> <!-- document.b 阅读全文
posted @ 2021-08-24 08:12 Max力出奇迹 阅读(203) 评论(0) 推荐(0)
摘要:什么是解构赋值? 解构赋值允许你使用类似于数组或对象字面量的语法将数组或对象的属性赋值给变量。这种语法可以非常简洁,但仍然比传统的属性访问更清晰。 在没有解构赋值的情况下,你可以像这样访问数组中的前三项: var first = someArray[0]; var second = someArra 阅读全文
posted @ 2021-08-23 16:13 Max力出奇迹 阅读(145) 评论(0) 推荐(0)
摘要:撇号基础知识(`) ES6引入了一种新的字符串字面量语法,称为模板字符串。它们看起来像普通的字符串,除了使用反勾字符ˋ而不是通常的引号'或"。在最简单的情况下,它们实际上只是字符串: context.fillText(`Ceci n'est pas une chaîne.`, x, y); 但这些字 阅读全文
posted @ 2021-08-20 21:35 Max力出奇迹 阅读(754) 评论(0) 推荐(0)
摘要:旧版本for循环 如何循环遍历数组中的元素?20年前,当JavaScript被引入时,你会这样做: for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]); } 从ES5开始,你就可以使用内 阅读全文
posted @ 2021-08-20 16:42 Max力出奇迹 阅读(112) 评论(0) 推荐(0)
摘要:ECMAScript包含哪些内涵? JavaScript编程语言是由ECMA(一个类似W3C的标准组织)在ECMAScript下进行标准化的。在其他方面,ECMAScript定义: 语言语法(Language syntax)——解析规则(parsing rules)、关键字(keywords)、语句 阅读全文
posted @ 2021-08-20 15:15 Max力出奇迹 阅读(115) 评论(0) 推荐(0)
摘要:package-lock.json 一个清单的清单表现形式 描述 对于NPM修改node_modules树或package.json的任何操作,都会自动生成package-lock.json。 这个文件被提交到源仓库中,并用于各种目的: 描述依赖关系树的单一表示,这样团队成员、部署和持续集成就可以保 阅读全文
posted @ 2021-08-20 00:10 Max力出奇迹 阅读(1416) 评论(0) 推荐(0)

返回顶部↑