ECMAScript中NaN的詳細解讀

2021-09-24 03:26:46 字數 2333 閱讀 5965

這個數值用於表示乙個本來要返回數值的運算元未返回數值的情況(這樣就不會丟擲錯誤了)。例如,在其他程式語言中,任何數值除以非數值都會導致錯誤,從而停止**執行。但在ecmascript(發音:「ek-ma-script」)中,任何數值除以非數值都會返回nan,因此不會影響其他**的執行。

nan本身有兩個非同尋常的特點。首先,任何涉及nan的操作(例如nan/10)都會返回nan,這個特點在多步計算中有可能導致問題。其次,nan與任何值都不相等,包括nan本身。

console.

log(

nan==

nan)

//false

console.

log(

nan+10)

;//nan

console.

log(

nan-10)

;//nan

console.

log(

nan*10)

;//nan

console.

log(

nan/10)

;//nan

console.

log(

"*****************************************");

console.

log(

10/string)

;//nan

console.

log(

10/object)

;//nan

console.

log(10/

"hello");

//nan

console.

log(

"hello"/10

);//nan

console.

log(

"*****************************************");

console.

log(10/

true);

//10

console.

log(

true/10

);console.

log(10/

false);

//infinity

console.

log(

false/10

);//0console.

log(10/

"");//infinity

console.

log(""/

10);//0

console.

log(10/

null);

//infinity

console.

log(

null/10

);//0console.

log(

"*****************************************");

console.

log(

10/undefined)

;//nan

console.

log(undefined/10)

;//nan

請看下面例子:

console.

log(

isnan

(nan))

;//true

console.

log(

isnan(10

));//false(10是乙個數值)

console.

log(

isnan

("10"))

;//false(可以被轉換成數值10)

console.

log(

isnan

("hello"))

;//true(不能被轉換成數值)

console.

log(

isnan(""

));//false(可以被轉換成數值0)

console.

log(

isnan

(true))

;//false(可以被轉換成數值1)

console.

log(

isnan

(false))

;//false(可以被轉換成數值0)

console.

log(

isnan

(null))

;//false(可以被轉換成數值0)

console.

log(

isnan

(undefined));

//true

ECMAScript中的函式

有 3 種定義函式的方式 函式宣告 function關鍵字後需要指定函式名 function sum num1,num2 不加分號 console.log sum 2,3 5函式表示式 function關鍵字後不用指定函式名 函式末尾需要新增乙個分號,就像宣告其他變數時一樣 var sum func...

python中nan的比較

在用numpy.sum等方法計算列表時,當列表中無目標元素,得到的為空值nan。然而不同於none,它無法用 進行判斷。nan not a number 在數學表示上表示乙個無法表示的數,這裡一般還會有另乙個表述inf,inf和nan的不同在於,inf是乙個超過浮點表示範圍的浮點數 其本質仍然是乙個...

ECMAScript中的箭頭函式

ecmascript中的箭頭函式 ecmascript6中允許使用箭頭 表示函式,使用箭頭函式使得 更加簡潔,使用箭頭函式時,函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件。使得es程式設計時擺脫this作用域問題的困擾,避免多次使用bind this 繫結this的作用域。箭...