[英]What is the meaning of using done as a parameter in a javascript function?
[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.