JavaScript,如何導出函數

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

在 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中從函數返回多個值

函數在JavaScript中只能返回一個值。那麼我們如何模擬從函數返回多個值呢? 當我們調用JavaScript中的函數時,只能使用return語句返回一個值: const getAge = () => { return 37 } const getName = () => { return 'Flavio' } 我們如何從函數中返回多個值呢? 一個簡單的技巧是返回一個數組: const getDetails = () => { return [37, 'Flavio'] } 這樣也是可以的,我們可以通過數組解構來獲取這些值: const [age, name] = getDetails() 現在我們擁有了包含這些值的age和name變量。 請注意,在const [age, name] = getDetails()中定義它們的順序是很重要的。 我們也可以返回一個對象並使用對象解構: const getDetails = () => { return { age: 37, name: 'Flavio' } } const { age, name } = getDetails() 在這種情況下,const { age, name } = getDetails()中的age和name的順序不再重要,因為它們是命名參數。

如何在JavaScript中獲取兩個日期之間的天數

給定兩個JavaScript的Date對象,我該如何獲取這兩個日期之間的日期(也表示為Date對象)列表? 我曾經遇到這個問題:給定兩個JavaScript的Date對象,我該如何獲取這兩個日期之間的日期(也表示為Date對象)列表? 這裡有一個用於計算日期的函數: 它以兩個日期對象作為參數,並返回一個日期對象的數組: const getDatesBetweenDates = (startDate, endDate) => { let dates = [] // 為了避免修改原始日期 const theDate = new Date(startDate) while (theDate < endDate) { dates = [...dates, new Date(theDate)] theDate.setDate(theDate.getDate() + 1) } return dates } 使用示例: const today = new Date() const threedaysFromNow = new Date(today) threedaysFromNow.setDate(threedaysFromNow.getDate() + 3) getDatesBetweenDates(today, threedaysFromNow) 如果你還想包括起始日期和結束日期,可以使用下面這個版本,在最後添加它們: const getDatesBetweenDates = (startDate, endDate) => { let dates = [] // 為了避免修改原始日期 const theDate = new Date(startDate) while (theDate < endDate) { dates = [....

如何在JavaScript函式中接受無限參數

如何實現一個接受無限參數的函式呢? 假設我們有一個名為 join() 的函式,它的任務是將我們傳遞給它的所有字符串串接起來。 例如,我們撰寫一個接受兩個字符串的原型: const join = (string1, string2) => { return string1 + string2 } 當我們調用它時,我們得到一個由我們傳遞的兩個參數串接而成的字符串: join('hi', ' flavio') // 'hi flavio' 一個簡單的方法是添加其他默認值為空字符串的參數,像這樣: const join = (string1, string2, string3 = '') => { return string1 + string2 + string3 } 但這種方法並不適用於大量參數,並且會讓我們的代碼看起來很糟糕。 相反,我們可以使用展開運算符 (...) 後跟我們想要使用的參數名稱的語法。在函式內部,該參數是一個陣列,所以我們可以簡單地調用它的 .join() 方法來串接它包含的字符串,並傳遞一個空字符串作為參數(否則默認會在字符串之間加上逗號): const join = (...strings) => { return strings.join('') } 在我們的例子中,我們還可以使用箭頭函式中提供的隱式返回語法進一步簡化: const join = (...strings) => strings.join('') 我們可以像之前一樣調用它: join('hi', ' flavio') // 'hi flavio' join('hi', ' flavio', ' it', ' is', ' a', ' beautiful day!...