今天要介紹的咒語是
寐偲,賽!
只要唸出這個咒語就不需要動手簽名了,咒語會自動變出一個簽名
想像一下每次刷卡刷很多錢都要簽名很麻煩對吧!
店員要拿單子給你簽,這時你非常有氣勢地喊出:
「寐偲,賽!」
可以想像店員錯愕的表情嗎?然後你還是得自己動手簽名。
這邊的sign
指的是符號,使用Math.sign()
將會得到一個數字型別且保留他的「符號」。
舉例來說,10
所代表的是+10
,那他就會保留符號+
然後回傳1
來代表這個數的符號。
直接來看看怎麼使用吧!
Math.sign(x)
放入一個數字型別
他將回傳一個代表傳入之引數的符號:
x
是正數,回傳1
。x
是負數,回傳-1
。x
是0
,回傳0
。x
是-0
,回傳-0
。NaN
。看起來就是用來判斷數字是正數、負數或零,來看看規範吧!
喔!開頭就說這個函式回傳x
的符號,指出x
是正數、負數或是零,傳入後執行以下操作:
n
,值一樣為ToNumber(x)
的結果。n
是NaN
、浮點數+0
跟浮點數-0
其中一個,那就回傳n
本身。n
小於浮點數-0
,回傳浮點數-1
。1
。結束了?啊我還不知道他可以用來幹嘛呢QQ
看完這個方法後想辨別正還是負我的腦中只有一張圖片
圖片來源:用Mac內建工具畫的,如果太簡陋請多多包涵。
物理的運動圖形((???
簡單幫大家回顧一下這個會出現在國中物理的圖吧!
在t1
這個時間點速度是「正」的,t2
速度變成0
,到了t3
速度變成「負」的,最後t4
時速度又回到0
了。
那速度值的「正」、「負」各代表什麼呢?就是運動的方向~如果我們定義往右走是正的,那麼往左走就會是負的,那0
就會代表他是靜止不動的!
解釋完我們就簡單寫個小小的練習來判斷運動狀態吧!
function getMotionState(velocity){
const sign = Math.sign(velocity);
switch (Math.sign(velocity)) {
case 1: return "向右";
case -1: return "向左";
case 0: return "靜止";
}
}
console.log(getMotionState(-10)); //向左
寫完覺得這個例子滿瞎的...明明寫if/else就可以解決哈哈,針對效能好像也幾乎沒有差別。
所以如果有個數我們很想知道他的正負號該怎麼做呢?
Math.sign()
還有另一個特別之處就是能夠分辨0
跟-0
,如果今天得到的數非常小而且是負數,例如1 / -Infinity
,那Math.sign(1 / -Infinity)
將會回傳-0
。
也許這會是一個方向!但我還沒有想法,大家可以的話幫忙想想看有沒有適合的使用時機,歡迎來訊討論!
什麼鬼,令人挫折的一天,明天看看會不會好轉。
參考資料: