js強制型別轉換

2021-09-27 12:26:23 字數 2721 閱讀 5851

今日地鐵看書總結

強制型別轉換

tostring()其他資料型別轉化為字串的方法

注意,陣列重寫了tostring()方法。

對於json.stringfy()不安全值有undefined,null,function,symbol,迴圈引用物件,轉化他們結果為undefined

json.stringfy(function(){}) //undefined
當使用json.stringfy()轉換型別的時候,如果該物件定義了tojson()方法,就會先呼叫tojson()方法。

當遇到引數為不安全值的時候,也需要tojson()方法返回乙個安全值。

tojson()方法方法裡面可以定義一些特別的轉化方式。

var o =

var a =

}a.tojson=function() //因為c,d屬性均不合法

}json.stringfy(a) //""

強制轉化為布林值

通過new boolean進行強化轉化或者

!!a  // 返回true或者false
一些假值:通過boolean強制轉型之後,就會轉換為false

undefined

null

false

+0,-0,nan

'' ''

還有一些看起來像假值,但其實是真值的。

各種字串(包括:"false","0","''")

空陣列,空物件,空函式

總結:不在假值列表的均為真值

還有一點容易與boolean產生混淆.就是if()語句內的判斷

0、-0、0.0、null、""、false、undefined、nan //判斷為false
其他情況都是判斷為true的可以看看以下的特殊情況。

看到

==true  //false
這是因為比較的時候,==進行強制型別轉換。把轉換成了0,true轉換成了1.所以返回false

顯式解析數字字串

`parseint(a)接受引數為字串

var a= '42'

var b= '42px'

number (a) //42 轉換

parseint(a)//42 解析

number (b) //nan

parseint(b)//42

隱式型別轉換

可以使用+""進行數字和字串的隱式轉換。他會對a呼叫valueof()方法,然後通過tostring()抽象操作,把返回值轉換為字串。所以如果valueof()方法和tostring()方法定義存在不和諧的地方,那麼最終的返回值就不是23了

42+""  //  "42"
不和諧是指:

var a=

tostring:function()

}a+"" //"42"

string(a) //"4"

||和&&

運算元選擇器運算子

var a = 42

var b = null

var c = 'abc'

a||c //42

a||b //null

a&&b //42

a&&c //'abc'

可以看到:

||判斷結果為true時,返回第乙個值。結果為false時,返回第二個值

&&判斷結果為true時,返回第二個值。結果為false時,返回第乙個值

&&的優先順序比||高

可以利用||特性,為變數賦予預設值

a=a||42
利用&&特性,為函式執行把關

a&&foo()
核心:先轉化數值再比較

var a ='42'

a==true //false

a== false //false

為什麼比較中兩個都是返回false呢?

首先它會將布林型通過tonumber()轉化為數字。所以tonumber(true)變成1,tonumber(false)返回了0.所以怎麼比較都不會相等。

所以日常不要使用if(a==true)這種形式

使用if(a)是可以的。

JS 型別轉換 強制型別轉換

js 型別轉換 強制型別轉換 一 parseint 將其他型別轉換成number型別的整數 注意 string number 1 字串中值的首字元必須是數字,轉換後才能得到具體的值 否則得到nan 2 只轉換從首字元開始的連續數字 如 2b345 轉換後只得到2 3 除了string,其他型別轉換後...

js強制型別轉換

值型別轉換 包括兩種 顯式轉換和隱式轉換。將值從一種型別轉換為另外一種型別稱為型別轉換,也叫做顯式型別轉換,隱式的情況也叫做強制型別轉換。在js中兩種轉換被統稱為強制型別轉換。其實,對於顯式和隱式沒有很明確的界定,如果你不知道某種情況是一種顯式型別轉換,那麼它對於你來講就是隱式的。抽象值操作 顯示強...

JS 強制型別轉換

number string var number 8 var str string number console.log typeof str 複製 boolean string var boolean true var str string boolean console.log typeof s...