通常,||手段或,但它是什麼意思在這種情況下:||是什麼意味着在這種su?中?
function getCharCount (e,s) {
s = s || ",";
return getInnerText(e).split(s).length;
}
通常,||手段或,但它是什麼意思在這種情況下:||是什麼意味着在這種su?中?
function getCharCount (e,s) {
s = s || ",";
return getInnerText(e).split(s).length;
}
這意味着是s,如果是零,被分配值「」;如果s不爲零,則它保留其價值。
這個答案只是像其他人一樣正確。感謝不合理的降價,夥計們! –
這種辦法在Javascript定義可選參數。
你可以調用這個函數只有1個PARAM ...
有時,你不知道,如果一個變量將ahve值 所以你告訴你自己,你必須有一個值。
如果theres沒有值(null),那麼你將擁有自己的默認值。
那是你寫的
s = s || ",";
我不知道如果S具有值或沒有,但如果不是這樣,就把「」值。
Raynos提供了答案,但還有更多要補充的描述。
s = s || ",";
如果s
任何falsey值,比如undefined, null, 0, false, NaN, ""
,等等,然後s
將獲得初始化爲","
。
這對初始化函數的可選參數或保證參數至少有一些初始值非常有用。人們必須非常小心如何使用它,因爲此構造禁止故意傳遞參數s
的錯誤值。
在此示例中,您不能傳遞一個空字符串作爲s
的值,因爲它將更改爲","
。這個功能沒關係,但可能不適用於其他功能。在其他類型的功能中,您將無法通過可能是允許值的false
。
如果一個只想以防止不被傳遞的參數,那麼你必須使用這樣的事情,其中明確測試對於不確定的,並允許其他falsey值的傳:
s = typeof s != "undefined" ? s : ','; // if s is undefined, initialize
,或者如果你想驗證它是一個字符串,並允許一個空字符串,您可以使用:
s = typeof s == "string" ? s : ','; // if s not a string, initalize
有人可以請澄清。有些答案表明,如果s爲null,那麼逗號和另一個upvoted如果s爲空或「」然後逗號。 –
@巴里:這是因爲人們喜歡點擊箭頭!雷諾斯回答加上評論是最正確的。術語是明智的,它最終成爲一個合併類型運算符而不是邏輯或。 – Marc
[這個結構(x = x || y)是什麼意思?]的可能的重複(http://stackoverflow.com/questions/2802055/what-does-this-construct-xxy-mean) –