JS隱式型別轉換

2021-10-01 01:49:21 字數 1121 閱讀 1067

isnan()

判斷引數是否為nan,返回boolean值,隱式呼叫顯示型別轉換中的number()再將呼叫的結果和nan比對,返回true/false;

isnan('123s') // true 解析:number('123s') === nan -> nan === nan

isnan(null) // false 解析: number(null) === 0 -> 0!=nan

isnan(undefined) // true 解析:number(undefined) === nan -> nan===nan

++、–、+、-

四種運算子在運算之前都隱式呼叫number();注意當+兩側字串型別的資料就會隱式呼叫string(),將兩側內容拼接成字串,這也是為什麼在我們可以使用+進行字串拼接的原因;

var test = '1';

console.log(test ++) // 124

*、/、%、>、<、>=、<= 等數**算符都隱式呼叫number();

== 、===、object.is()區別:

==:會做隱式型別轉換處理,比如 1 == 『1』 結果是true;

object.is()是es6中新增的方法用來比較兩個引數是否相等,基本與 === 類似,不同的是object.is(+0,-0)返回false、object.is(nan,nan) 返回true,而 ===比較結果正好與之相反

最後大家根據上面的知識點做一下練習

var str = false + 1;

console.log(str)//1;

var demo = false == 1;

console.log(demo)//false

if(typeof(a) && -true + (+undefined) + '' )

if(11 + '11' * 2 == 33)

!!' ' + !!'' - !!false || console.log('你覺得能列印,你就是豬!')

js隱式型別轉換

筆試題 var x 1 if function console.log x 1undefined解析 if function f function f 作為表示式,function f消失,所以在if裡面,f為未宣告 任何乙個變數,未經宣告使用都會報錯。但是,typeof其時,不會報錯,而是unde...

js隱式型別轉換

乙個沒有提供 symbol.toprimitive 屬性的物件,參與運算時的輸出結果 var obj1 console.log obj1 nan console.log object object console.log obj1 object object 接下面宣告乙個物件,手動賦予了 symb...

js 隱式型別轉換

概念 無需程式設計師手動轉化,由編譯器自動轉換的方式稱為隱式轉換 規則 1.轉化成string 字串鏈結發 2.轉換為number型別 1 自增自減運算子 2 算數運算子 3 關係運算子 3.轉化為boolean型別 邏輯非運算子 例子總結 1.字串連線符與算術運算子的區分 1 true strin...