簡體   English   中英

javascript函數參數中下划線的含義是什么?

[英]What is the meaning of an Underscore in javascript function parameter?

我正在瀏覽一個用 javascript 編寫的圖表庫的代碼,其中我看到將下划線( _ )作為函數參數傳遞。 這意味着什么?

 chart.x = function(_) { if (!arguments.length) return lines.x; lines.x(_); lines2.x(_); return chart; };

有人可以請更新這...謝謝。

下划線符號_是 JavaScript 中的有效標識符,在您的示例中,它被用作函數參數。

單個下划線是一些 JavaScript 程序員用來向其他程序員表明他們應該“忽略此綁定/參數”的約定。 由於 JavaScript 不進行參數計數檢查,因此可以完全省略參數。

這個符號通常(再次按照慣例)與粗箭頭函數結合使用,使它們更簡潔易讀,如下所示:

const fun = _ => console.log('Hello, World!')
fun()

在這種情況下,該函數不需要參數來運行,因此開發人員使用下划線作為約定來表示這一點。 同樣的事情可以寫成這樣:

const fun = () => console.log('Hello, World!')
fun()

不同的是,第二個版本是一個沒有參數的函數,但第一個版本有一個名為 _ 的參數被忽略了。 這些是不同的,第二個版本更安全,如果稍微更冗長(1 個額外字符)。

另外,考慮一個案例

arr.forEach(function (_, i) {..})

其中_表示不使用第一個參數。

在使用流行的 lodash 或下划線庫時,像這樣使用下划線會變得非常混亂。

_ 在胖箭頭函數中被稱為一次性變量 這意味着實際上我們正在創建一個變量,但只是忽略了它。 現在越來越多的開發人員在編寫代碼時使用它作為語法糖或速記,因為編寫代碼很容易並且少一個字符。

除了使用 _,您還可以使用其他變量,如 temp、x 等

舉些例子:

() => console.log('Hello World')



_ => console.log('Hello World')




x => console.log('Hello World')

但我個人更喜歡在不需要參數的情況下使用 () 類型而不是一次性變量。

看下面的代碼,你會更好地理解它。

_ 作為論據,

  f = _=> {
    return _ + 2 ;
}

f(3) 將返回 5

為了更好地理解,請查看 we bos

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM