欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript必知必會(huì)(四)js類型轉(zhuǎn)換

 更新時(shí)間:2016年06月08日 12:26:50   作者:Company  
這篇文章主要介紹了Javascript必知必會(huì)(四)js類型轉(zhuǎn)換 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下

string和number boolean

javascript 類型會(huì)根據(jù)賦值的進(jìn)行轉(zhuǎn)成相應(yīng)的類型。

var str = "";
alert(typeof (str));//string
str = ;
alert(typeof (str));//number
var sum = str + ; //+編程兩個(gè)數(shù)字相加
alert(sum);// 

   這一種比較明顯,一眼就可以計(jì)算出其值。但是請(qǐng)看下面這種轉(zhuǎn)換

var sum = "" + "";
alert(typeof (sum)); //string
alert(sum);// 
var sum = "" + ;
alert(typeof (sum)); //string
alert(sum);//
     
     var sum = + "";
     alert(typeof (sum));//string
     alert(sum);
var area = "" * "";
alert(typeof (area)); //number
alert(area);//
var sub = "" - "";
alert(typeof (sub)); //number
alert(sub);//
var div = "" / "";
alert(typeof (div));//number
alert(div);//. 

  number 類型如果和string 類型"+", 將會(huì)直接number轉(zhuǎn)成string

上述中“+” 比較特殊,如果是- 、* 、/ 呢;那么最終會(huì)轉(zhuǎn)成什么類型呢。

var area = "" * "a";
alert(typeof (area));//number
alert(area);//NaN
var sub = "a" - "";
alert(typeof (sub));//number
alert(sub);//NaN
sub = "a" - ;
alert(typeof (sub));//number
alert(sub);//NaN
var div = "" / "a";
alert(typeof (div));//number
alert(div);//NaN
div = "a" / ;
alert(typeof (div));//number
alert(div);//NaN 

  如上 - 、*、/ 是number 中算術(shù)具有的。string和number是不能進(jìn)行運(yùn)算的,所以其值都是NaN。類型number。

var a = true;
alert(typeof(a));//boolean
var b = "true";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //truetrue
alert(a == b);//false 

   boolean 和 string ,boolean類型自動(dòng)轉(zhuǎn)成了字符串“true”,但是為什么a不等于b呢

大家看下這個(gè)例子:

var c = "";
alert(typeof(c));//string
var d = ;
alert(typeof (d));//number
alert(c == d);//true 

  這里給出了轉(zhuǎn)換的原則:(供參考)

1. 如果有一個(gè)操作數(shù)是布爾值,則在比較相等之前將其轉(zhuǎn)換為數(shù)值————false轉(zhuǎn)換為0,true轉(zhuǎn)換為1;
2. 如果一個(gè)操作數(shù)是字符串,另一個(gè)操作符是數(shù)值,則在比較相等之前先講字符串轉(zhuǎn)換為數(shù)值;
3. 如果一個(gè)操作數(shù)是對(duì)象,另一個(gè)操作數(shù)不是,則調(diào)用對(duì)象的valueOf()方法,用得到的基本類型值按照前面的規(guī)則進(jìn)行比較。

那么在比較字符串和布爾類型是就會(huì):

發(fā)生這樣的轉(zhuǎn)換: Boolean true先轉(zhuǎn)成number 1,在轉(zhuǎn)成字符串“1” ,在進(jìn)行比較。結(jié)果肯定是 false 了。

null 和string number Boolean undefined

var a = null;
alert(typeof (a));//object
var b = "hello";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //nullhello
var c = ;
var ac = a * c;
alert(typeof (ac)); //number
alert(ac);//
if (a ) //false
{
} else
{
alert("false");
}
var u;
alert(a == u); //true 

  從給出的例子可以看出:

null 在 string中 自動(dòng)轉(zhuǎn)成字符串"null" , 在number中表示數(shù)字 0,在邏輯判斷中相當(dāng)于false,在值表示時(shí) 和undefined 一樣。注意是== 而不是===。

雖然javascript 在進(jìn)行比較時(shí),== 轉(zhuǎn)換了其比較類型,但是其變量類型并沒有因?yàn)?= 而發(fā)生改變。

相關(guān)文章

最新評(píng)論