2013-09-29 77 views
0

this question一個答案是:邏輯或數字之間

Number.prototype.roundTo = function(nTo) { 
    nTo = nTo || 10; 
    return Math.round(this * (1/nTo)) * nTo; 
} 

是什麼意思?爲什麼我需要這樣做?

nTo = nTo || 10; 
+4

這意味着如果沒有提供'nTo'參數,使用任意'10'代替。這就像一個默認值。 – Utkanos

回答

2

這在JavaScript中經常用於默認值。

邏輯OR(||)返回第一個值,如果是truty或第二個,如果第一個是falsy。 當一個函數需要一個參數未傳遞時,函數獲得的值是undefined,這是虛假的。這意味着,

var x = parm || default_value; 

將使用default_value萬一parm未獲通過。

如果該值0或空字符串""然而作爲參數值可以接受的,這將無法工作,因爲0和空字符串也falsy。

此外,如果參數的值也可以是undefined(意思是應該使用undefined而不是默認值),唯一的解決辦法是檢查arguments.length

+2

請不要使用'default'作爲變量的名稱,因爲它是一種語言關鍵字... – Nayuki