ES6指南

ECMAScript是JavaScript基于的标准,通常缩写为ES。了解关于ECMAScript的一切以及ES6(又称ES2015)中添加的功能。 箭头函数 新的this作用域 Promises 生成器 let和const 类 构造函数 Super 取值器和存值器 模块 导入模块 导出模块 模板字符串 默认参数 展开运算符 解构赋值 增强的对象字面量 更简洁的语法来包含变量 原型 super() 动态属性 for-of循环 Map和Set 新的字符串方法 新的对象方法 ECMAScript 2015,也称为ES6,是ECMAScript标准的基本版本。 与最新的标准修订相隔4年发布,ECMAScript 5.1,它也标志着从版本号转换为年份的变化。 因此不应该称为ES6(尽管每个人都这样称呼),而应该称为ES2015。 ES5的制定历经了10年,从1999年到2009年,因此它也是一次基本而非常重要的语言修订,但现在已经过去了很长时间,没有必要讨论ES5之前的代码是如何工作的了。 由于ES5.1和ES6之间过去了很长时间,因此发布版本中充满了重要的新功能和对JavaScript程序开发中推荐最佳实践的重大变化。要了解ES2015有多么基础,请记住,随着这个版本,规范文档从250页增加到了~600页。 本文描述了最重要的变化。 箭头函数 自引入以来,箭头函数改变了大多数JavaScript代码的外观(和工作原理)。 从视觉上看,这是一个简单而受欢迎的变化,从: const something = function something() { //... } 到 const something = () => { //... } 如果函数体只有一行代码,只需: const something = () => doSomething() 此外,如果只有一个参数,可以写成: const something = param => doSomething(param) 这并不是一个破坏性的变化,常规的function仍然像以前一样工作。 新的this作用域 箭头函数的this作用域是从上下文继承的。...

Swift 物件

本教程屬於 Swift 系列 在 Swift 中,一切皆為物件。即使我們將數值 8 賦予變數 age,這個 8 也是一個物件。 在某些語言中,物件是一種特殊型別。但在 Swift 中,一切皆為物件,這導致了 Swift 的一個特點:每個值都可以「接收訊息」。 每種型別可以有多個與之相關的函式,我們稱之為方法。 舉例來說,對於數值 8,我們可以呼叫其 isMultiple 方法,以檢查該數字是否為另一數字的倍數: 字串值有另外一組方法。 一個型別也可以有實例變數。例如,字串型別有一個名為 count 的實例變數,可用於獲取字串中的字符數量: Swift 有三種不同的物件型別,我們稍後會詳細介紹:類別(classes)、結構體(structs)和列舉型別(enums)。 它們之間非常不同,但有一個共同點:對於物件型別,我們可以新增方法,並且對於任何型別的任何值,我們都可以發送訊息。

如何使用 JavaScript 類別

在 2015 年,ECMAScript 6 (ES6) 標準引入了類別。這篇文章將教你如何使用類別。 JavaScript 有一種相對不常見的方式來實現繼承:原型繼承。雖然我認為原型繼承是很好的一種方式,但它與其他流行的程式語言實現的繼承方式不同,後者是基於類別的。 來自於 Java、Python 或其他語言的人很難理解原型繼承的細節,因此 ECMAScript 委員會決定在原型繼承的基礎上添加糖衣語法,使其類似於其他流行語言中基於類別的繼承方式。 重要的是:JavaScript 在底層仍然保持相同,你仍然可以以正常的方式訪問對象原型。 類別定義 以下是一個類別的示例: class Person { constructor(name) { this.name = name } hello() { return 'Hello, I am ' + this.name + '.' } } 類別有一個識別符,我們可以使用 new ClassIdentifier() 來創建新對象。 當對象被初始化時,將調用 constructor 方法,並傳入任何參數。 類別可以有任意數量的方法。在這個例子中,hello 是一個方法,可以在所有由這個類別派生的對象上調用: const flavio = new Person('Flavio') flavio.hello() 類別繼承 一個類別可以繼承另一個類別,在使用該類別初始化的對象將繼承兩個類別的所有方法。 如果被繼承的類別和繼承的類別中有同樣名稱的方法,最近的方法將優先執行: class Programmer extends Person { hello() { return super.hello() + ' I am a programmer....