javascript-hardest-concepts

#最難理解的JavaScript概念 昨天我在Twitter上問了個問題: “在JavaScript中,最複雜的主題是什麼?你學習它花費最多時間的是哪個?” 我收到了200多個回覆。 以下是一些經常被提到的內容: this 非同步JavaScript(promises, callbacks, async/await) 閉包 事件循環 遞歸 作用域 變數提升 原型繼承 bind(), call(), apply() reduce() 生成器 fetch() 除了生成器這個比較小眾的概念外,其餘的都是我們每天在JavaScript中都會用到的。 我在這個博客上有關於這些主題的文章,你可以使用搜索功能來找到它們,但我問這個問題的原因是我正在為11月份準備一個高質量的新課程,名為The JavaScript Course。 這個課程將從基礎知識開始,因為我不想把還不了解JavaScript的人排除在外,但我們會很快深入到真正的內容。 我想確保覆蓋到所有令人困惑的內容。 我正在組織這個新課程,這是我以前從未做過的方式,非常特別。 這個課程的形式將回顧我在2019年做過的一個課程,每天發送一封郵件,其中包含一些問題和挑戰。 這個課程將持續4週,總共20天(星期一到星期五)。每天都將解鎖一個新的課程,並且以有趣和互動的方式來完成。我們將全力投入到當天的主題中。 每天你都會收到一封郵件,推動你采取行動。穩定性很重要,一旦你註冊,我不希望你只是旁觀。我希望你能加入其中,與其他註冊課程的人一起學習。 這樣一個大型社區,為期20天,可以一起成長。 我為此建立了一個新的課程平台,希望這將是一次很棒的體驗。 當然,我們將建立一個社區,因為這是一個特殊的活動,所有特殊的活動都值得建立一個社區來互相幫助。 嗯,我上面列出的所有主題都將得到特殊對待,因為這可能是一個能讓它們一次擊中要害的課程。

javascript-number-toprecision

#toPrecision()方法 了解 JavaScript 的 toPrecision() 方法的所有内容 该方法返回一个表示特定精度的数值的字符串: new Number(21.2).toPrecision(0) // 出错!参数必须大于 0 new Number(21.2).toPrecision(1) // 2e+1(= 2 \* 10^1 = 2) new Number(21.2).toPrecision(2) // 21 new Number(21.2).toPrecision(3) // 21.2 new Number(21.2).toPrecision(4) // 21.20 new Number(21.2).toPrecision(5) // 21.200

javascript-quotes

#JavaScript中的引號 JavaScript允許使用3種類型的引號: 單引號 雙引號 反引號 第一種和第二種本質上是相同的: const test = 'test' const bike = "bike" 在使用一種引號或另一種引號時,幾乎沒有什麼區別。唯一的區別在於必須對用於界定字符串的引號字符進行轉義: const test = 'test' const test = 'te\'st' const test = 'te"st' const test = "te\"st" const test = "te'st" 有很多樣式指南建議始終使用一種風格而不是另一種。 我個人偏好始終使用單引號,在HTML中使用雙引號。 反引號是JavaScript的最新添加,自2015年的ES6引入以來。 它們具有一個獨特的功能:它們允許多行字符串。 使用逃逸字符,也可以使用常規字符串進行多行字符串: const multilineString = 'A string\non multiple lines' 使用反引號,您可以避免使用逃逸字符: const multilineString = `A string on multiple lines` 不僅如此,您還可以使用${}語法插值變量: const multilineString = `A string on ${1+1} lines` 我在另一篇文章中介紹了使用反引號的字符串(稱為模板文字),該文章更深入地介紹了細節。

javascript-string-match

#match()方法的字串 深入了解JavaScript的字串match()方法 给定一个由regex标识的正则表达式,尝试在字串中匹配它。 示例: 'Hi Flavio'.match(/avio/) // Array [ 'avio' ] 'Test 123123329'.match(/\d+/) // Array [ "123123329" ] 'hey'.match(/(hey|ho)/) //Array [ "hey", "hey" ] '123s'.match(/^(\d{3})(\w+)$/) //Array [ "123s", "123", "s" ] '123456789'.match(/(\d)+/) //Array [ "123456789", "9" ] '123s'.match(/^(\d{3})(?:\s)(\w+)$/) //null '123 s'.match(/^(\d{3})(?:\s)(\w+)$/) //Array [ "123 s", "123", "s" ] 'I saw a bear'.match(/\bbear/) //Array ["bear"] 'I saw a beard'.match(/\bbear/) //Array ["bear"] 'I saw a beard'.match(/\bbear\b/) //null 'cool\_bear'.match(/\bbear\b/) //null 要了解有关正则表达式的更多信息,请参阅我的正则表达式教程。

JavaScript, 如何替換陣列中的元素

如果你知道陣列中的某個元素的索引,你可以通過簡單的賦值來替換它的內容: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const i = 2 items[i] = '--NEW-ITEM--' console.log(items) //[ 'a', 'b', '--NEW-ITEM--', 'd', 'e', 'f' ] 如果你不知道元素的索引,你可能需要首先找到元素在陣列中的索引。

JavaScript,在字串中找尋字符

你如何使用JavaScript在字串中找尋字符? 有一個簡單的方法。 每個字串都有一個includes()方法,它接受一個(或多個)字符。 該方法返回true,如果字串中包含該字符,並返回false,如果不包含: 'a nice string'.includes('a') //true 'a nice string'.includes('b') //false 但是,如果你需要找到字符在字串中的確切位置,你需要使用indexOf()方法: 'a nice string'.indexOf('a') //0 'a nice string'.indexOf('c') //4 如果有多個出現的情況,該方法將返回從左邊開始找到的第一個字符的位置。

JavaScript,如何刪除多個換行符

我有一個字符串,發現它有連續的換行符,就像這樣: 一段話... 另一段話... 另一段話... 但我希望它只有一個換行符: 一段話... 另一段話... 另一段話... 以下是我使用的方法來獲得我想要的結果: text = text.replace(/[\r\n]{2,}/g, '\n\n') 如果正則表達式對你來說是個謎,請參考我的正則表達式指南。

JavaScript,如何過濾陣列

如何在 JavaScript 中過濾陣列 您有一個陣列,希望過濾它,以獲取原始陣列中僅包含某些值的新陣列。 怎麼做呢? JavaScript 陣列提供了一個內建的 filter() 方法,我們可以用它來完成這個任務。 假設我們有一個包含 4 個代表 4 隻狗的物件陣列: const dogs = [ { name: 'Roger', gender: 'male' }, { name: 'Syd', gender: 'male' }, { name: 'Vanille', gender: 'female' }, { name: 'Luna', gender: 'female' } ] 然後您想要過濾僅保留雄性狗。 可以這樣做: const maleDogs = dogs.filter((dog) => dog.gender === 'male') // [ { name: 'Roger', gender: 'male' }, { name: 'Syd', gender: 'male' } ]

JavaScript,如何導出多個函數

如何從 JavaScript 文件中導出多個函數 在 JavaScript 中,我們可以將一個程序分為多個文件。我們如何使我們在一個文件中定義的函數可供其他文件使用? 通常,您會這樣編寫一些函數: function sum(a, b) { return a + b } function mul(a, b) { return a \* b } 並且您可以使用以下語法將它們對其他文件進行導出: export { sum, mul } 需要導入導出功能的文件將導入所有函數或只需要的函數: import { sum, mul } from 'myfile' import { mul } from 'myfile'

JavaScript,如何導出函數

如何從 JavaScript 文件中導出函數 在 JavaScript 中,我們可以將程序分為多個文件。我們如何使我們在一個文件中定義的函數對其他文件可用? 通常,我們會這樣編寫一個函數: function sum(a, b) { return a + b } 你可以通過以下語法將其導出,以便其他文件可使用: export default sum 我們稱之為默認導出。 需要使用導出函數的文件將使用以下語法導入: import sum from 'myfile'