在 JavaScript 中如何生成 slug

我使用的一段代碼將字符串生成 slug 的方法 export function slugify(str) { // 去除字符串頭尾的空格 str = str.trim() // 將字符串轉換為小寫 str = str.toLowerCase() // 移除重音符號,將 ñ 替換為 n,等等 str = str.normalize('NFD').replace(/[\u0300-\u036f]/g, '') // 移除無效字符 str = str.replace(/[^a-z0-9 -]/g, '') // 將空格替換為連字符 str = str.replace(/\s+/g, '-') // 合併連續的連字符 str = str.replace(/-+/g, '-') return str }

在 JavaScript 中如何在循環中使用 await

下面是如何使用 for..of 循環來迭代一個數組並在循環內部使用 await: const fun = (prop) => { return new Promise(resolve => { setTimeout(() => resolve(`done ${prop}`), 1000); }) } const go = async () => { const list = [1, 2, 3] for (const prop of list) { console.log(prop) console.log(await fun(prop)) } console.log('done all') } go() 需要將循環放置在一個 async 函數中,然後才能使用 await,循環會停止迭代,直到等待的 Promise 解決為止。 您也可以使用 for..in 循環來迭代對象: const fun = (prop) => { return new Promise(resolve => { setTimeout(() => resolve(`done ${prop}`), 1000); }) } const go = async () => { const obj = { a: 1, b: 2, c: 3 }; for (const prop in obj) { console....

在 JavaScript 中如何获取 CSS 属性的值

假设您想要在网页中获取 CSS 属性的值,其中该属性是使用样式表设置的。您可以如何做到这一点呢? 假设您想要在网页中获取 CSS 属性的值,其中该属性是使用样式表设置的。 元素的 style 属性不会返回它,因为它仅列出内联样式或动态设置的 CSS 属性。 而不是外部样式表中定义的属性。 那么,您该怎么做呢?可以使用 getComputedStyle(),它是一个全局函数: const element = document.querySelector('.my-element') const style = getComputedStyle(element) style.backgroundColor // RGB 值

在 JavaScript 中使用 call() 和 apply()

了解如何在 JavaScript 中使用 call() 和 apply() 函数以及它们的区别。 call() 和 apply() 是 JavaScript 提供的两个函数,用于执行一个非常特定的任务:调用一个函数并设置其 this 值。 查看我的 “this” 指南 以了解关于这个特定变量的所有细节。 函数可以使用 this 值进行许多不同的用例。问题在于它由环境给出,并且不能从外部改变,除非使用 call() 或 apply()。 当使用这些方法时,您可以传入一个额外的对象,该对象将在调用的函数中用作 this。 这两个函数执行相同的操作,但有一个区别。在 call() 中,您可以将函数参数作为逗号分隔的参数列表传递,可以使用任意数量的参数,而在 apply() 中,您传递一个包含参数的单个数组: const car = { brand: 'Ford', model: 'Fiesta' } const drive = function(from, to, kms) { console.log(`驾驶我的汽车,一辆${this.brand} ${this.model},从 ${from} 开往 ${to},行驶 ${kms} 公里`) } drive.call(car, '米兰', '罗马', 568) drive.apply(car, ['米兰', '罗马', 568]) 请注意,当使用 箭头函数 时,this 不被绑定,因此此方法仅适用于常规函数。

在 JavaScript 中使用 let vs const

let 和 const,該選擇哪一個呢? 在 JavaScript 中,我們通常使用兩個關鍵字來聲明變量:let 和 const。 什麼時候該使用其中之一? 我總是會首選使用 const。 為什麼呢? 因為 const 保證變量的值無法被重新賦值。 在編程中,我總是認為能給我帶來最小風險的選項是最好的。 我們有大量可能引發問題的東西。 你給予某個事物的權限越大,你就需要承擔更多的責任。 而我們通常並不希望如此。 當然,這是有爭議的,對於我來說,我不希望那樣就足夠了。 如果我使用 let 來聲明變量,我就允許它可以被重新賦值: let number = 0 number = 1 在某些情況下,這是必要的。 如果我希望變量可以被重新賦值,那麼 let 是完美的選擇。 但在80%的情況下,我甚至不希望這個選項存在。我希望編譯器(在 JavaScript 的情況下是解釋器)給我一個錯誤。 這就是為什麼我在聲明變量時總是首選 const,只有在需要允許重新賦值時才切換到 let。

在 JavaScript 中使用鏈式方法調用

在 JavaScript 中,有時我們可以使用鏈式方法調用,像這樣: car.start().drive() 這樣做非常方便。 相比於這樣寫: car.start() car.drive() 我們可以將其簡化為一行。 這是可能的,只要每個方法都返回對象本身。換句話說,實現必須類似於這樣: const car = { start: function() { console.log('start') return this }, drive: function() { console.log('drive') return this } } 需要注意的是,你不能使用箭頭函數,因為箭頭函數中的 this 不會綁定到對象實例。 我喜歡始終使用箭頭函數,這是其中一種不能使用箭頭函數的情況。 當你不從方法返回一組值時,鏈式方法調用非常有用,否則你顯然需要將方法調用賦值給變量,而鏈式調用是不可能的: const result = car.start() if (result) { car.drive() }

在 JavaScript 中解構對象和數組

學習如何使用解構語法在 JavaScript 中處理數組和對象 給定一個對象,使用解構語法可以將其中一些值提取出來並放入命名變量中: const person = { firstName: 'Tom', lastName: 'Cruise', actor: true, age: 54 // made up } const { firstName: name, age } = person // name: Tom, age: 54 name 和 age 包含了所需的值。 這種語法也可以應用於數組: const a = [1, 2, 3, 4, 5] const [first, second] = a 這個語句通過從數組 a 中使用索引 0、1、4 獲取項目創建了 3 個新變量: const [first, second, , , fifth] = a

在 Laravel Forge 上部署的網站和在 Cloudflare 上設定 DNS 後顯示太多重新導向的問題

解決方法是在 Cloudflare 介面中將 SSL/TLS 加密模式設定為 完全 (Strict) : 預設設定為靈活 (Flexible),但只會一直收到以下訊息:

在 Mac 上將文件還原到之前的版本

今天早上,我正在 Pages 文件上工作,當我決定保存並立即退出應用程序時。 在我這麼做的瞬間,我意識到我犯了一個錯誤:前一天晚上,我對文件的封面進行了一些編輯,刪除了背景圖片,而我忘記了將其還原。 我試著重新打開它,當然 cmd-Z 不能撤消更改 - 它只能在退出 Pages 之前使用。 然後我想到了使用我通常做的備份。 但後來,我也發現了一個多年來我從未使用過的功能。 一些應用程序,包括 Pages、Numbers 和許多其他使用文檔的非蘋果應用程序(例如 MindNode),都有一個 文件 -> 還原到 菜單。 你可以立即還原到最新保存的版本,但你也可以點擊“瀏覽所有版本…”進入該文件的 Time Machine 視圖: 從這裡,你可以回到任何過去保存的版本。

在 macOS Finder 中添加“在 VS Code 中打开”图标

假设我在 Finder 中,打开一个文件夹,并且想要在 VS Code 中打开它。 我该怎么做呢?通常情况下,我会转到上一级文件夹,拖动该文件夹并将其放入 Dock 中的 VS Code 图标中。 或者我会转到终端并输入 code . 但是,今天我花费了一些时间,让这个过程变得更容易,通过在 Finder 工具栏中添加一个按钮: 下面是你也可以这样做的方法。 打开 Automator,选择“应用程序” 在动作列表中搜索“运行 Shell 脚本”,并粘贴以下两行: finderPath=`osascript -e 'tell application "Finder" to get the POSIX path of (target of front window as alias)'` open -n -a "Visual Studio Code" --args "$finderPath" 如果你愿意,你也可以使用应用程序的 Bundle ID: finderPath=`osascript -e 'tell application "Finder" to get the POSIX path of (target of front window as alias)'` open -n -b "com....