国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js基礎(chǔ)筆記-類型裝換

Cobub / 1889人閱讀

摘要:在中,如果函數(shù)沒有聲明返回值,那么會返回。返回是一元運算符,后跟變量的名稱,用于獲取變量的數(shù)據(jù)類型,其返回值有個以及。

前言

說好聽是說JS靈活, 說不好聽就是JS的坑太多, JS類型轉(zhuǎn)換就是一個大坑, JS的類型包括了原始類型的[null, undefined, String ,Number, Boolean],以及對象類型的[function, object];

JavaScript 是一種弱類型(或稱動態(tài)類型)語言,即變量的類型是不確定的。

x = 5; // 5
x = x + "A"; // "5A"

上面代碼中,變量x起先是一個數(shù)值,后來是一個字符串,類型完全由當(dāng)前的值決定,這就叫弱類型。

JS的數(shù)據(jù)類型

JavaScript中有五種原始數(shù)據(jù)類型:Undefined、Null、Boolean、Number以及String。

Undefined數(shù)據(jù)類型的值只有一個:undefined。
在JavaScript中,如果函數(shù)沒有聲明返回值,那么會返回undefined。
如果typeof后面跟一個未定義的參數(shù),也是返回undefined。

function undefinedA(){}
undefinedA();//返回undefined
typeof abc;//變量abc未聲明,返回undefined

Null數(shù)據(jù)類型的值只有一個:null。
null與undefined的關(guān)系:undefined實際上是從null派生出來的。其實所有的js的object對象的父對象都是null。

undefined == null;//返回true

typeof是一元運算符,后跟變量的名稱,用于獲取變量的數(shù)據(jù)類型,其返回值有5個:undefined、boolean、number、string以及object。

轉(zhuǎn)換規(guī)則

轉(zhuǎn) boolean 規(guī)則:
null, undefined, "", 0, -0, NaN 轉(zhuǎn)換成布爾值是 false, 剩下的全轉(zhuǎn)化 true;

轉(zhuǎn) number 規(guī)則:

string "2.3.1" => NaN;
非數(shù)字形式的,如str,str2.3,2.3.3.3,a+3.2都將會轉(zhuǎn)換成非數(shù)字及NaN

Number("str");//NaN
Number("2.3.3.3");//NaN
Number("a+1.2");//NaN
Number("2.3");//2.3

null, "", false, [] => 0;
null,空字符串,F(xiàn)ALSE,空數(shù)組,都將會轉(zhuǎn)換成數(shù)字0(這個可能在隱式類型轉(zhuǎn)換中看到的比較多)

Number(null);//0
Number("");//0
Number(false);//0
Number([]);//0

undefined => NaN;
undefined即未定義,轉(zhuǎn)換為非數(shù)字

Number(undefined);//NaN

object => x Number(object.toString())
如果無法從valueOf()方法中獲取Primitive值,那么調(diào)用object的toString()方法;如果toString()返回的是Primitive值,則將該Primitive值轉(zhuǎn)換成number后返回。(Primitive這個暫時沒懂)

Number([2]);//2
Number([2,3]);//NaN
Number({});//NaN

隱式類型轉(zhuǎn)換 ==

有布爾值則轉(zhuǎn)換為數(shù)值

1 == true;//true
0 == false;//true

字符串?dāng)?shù)值,則字符串轉(zhuǎn)換為數(shù)值

"2" == 2;//true

根據(jù)上面兩條,可以想到一個很有趣的轉(zhuǎn)換,如下

!!"2" == true;//true,bool值全轉(zhuǎn)為數(shù)字,字符串轉(zhuǎn)數(shù)字,數(shù)字前加非規(guī)則為,非0的都轉(zhuǎn)1

只有一個是對象,則對象會調(diào)用toString() valueOf()

"[object Object]" == {id:1};//true,這里的對象進(jìn)行調(diào)用了toString()方法
"[object Function]" == {id:1};//false

null == undefined

null == undefined;//true

NaN != NaN

NaN != NaN

對象==,比較內(nèi)存地址

var a = {id:1};
var b = {id:1};
a == b;//false,對象比較的內(nèi)存地址

轉(zhuǎn)換函數(shù)

強(qiáng)制轉(zhuǎn)換:parseInt,parseFloat,Number,String,Boolean

下面的例子如下,以Number為例

Number(false);//0 
Number(true);//   1 
Number(undefined);//   NaN 
Number(null);//   0 
Number( "5.5 ");//   5.5 
Number( "56 ");//   56 
Number( "5.6.7 ");//   NaN 
Number(new   Object());//   NaN 
Number(100);//   100  

隱式類型轉(zhuǎn)換:==,-,+,*,if,>=,<=,while,for in,alert

隱式類型轉(zhuǎn)換在比較以及判斷,還有做算術(shù)運算的時候比較常見

比較運算

"2" == 2;//true;
"2" > 0;//true;

while,for in, alert運算

alert(new Boolean(false));//false,轉(zhuǎn)成字符串

算術(shù)運算

"2"+1;//"21"
1+true;//2
"2"+true;//"2true"
"2"-1;//1
"210"-"10";//100
"2"*"3";//6

參考

下表作為參考, 來自js權(quán)威指南:

原始類型和對象類型 轉(zhuǎn)換成String 轉(zhuǎn)換成Number 轉(zhuǎn)換成Boolean 轉(zhuǎn)換成Object
undefined "undefined" NaN false throws TypeError
null "null" 0 false throws TypeError
true "true" 1 new Boolean(true)
false "false" 0 new Boolean(false)
""(empty string) 0 false new String("");Object("")
"1.2" (nonempty, numeric) 1.2 true new String("1.2");Object("1.2")
"one" (nonempty, non-numeric) NaN true new String("one");Object("one")
0 "0" false new Number(0);Object(0)
-0 "0" false new Number(-0);Object(-0)
NaN "undefined" false new Number(NaN);Object(NaN)
Infinity "Infinity" true new Number(Infinity);Object(Infinity)
-Infinity "-Infinity" true new Number(-Infinity);Object(-Infinity)
1 (finite, non-zero) "1" true new Number(1);Object(1)
{} (any object) NaN true
[] (empty array) "" 0 true
[9] (1 numeric elt) "9" 9 true
["a"] (any other array) use join() method NaN true
function(){} (any function) "undefined" NaN true

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/91557.html

相關(guān)文章

  • JavaScript數(shù)據(jù)類型中易被忽略的點

    摘要:只比較值得結(jié)果,,裝換為數(shù)值后就是,但是當(dāng)他們是數(shù)組中的一項,或字符串時并非是空的。再看一個比較奇怪的例子首先,看右邊,邏輯非對進(jìn)行布爾轉(zhuǎn)換,依據(jù)上面的裝換表,數(shù)組其實也是對象,裝換為真。 String 字符串中可以包含由反斜杠和字符構(gòu)成的特殊字符,如 換行, 退格,f 換頁, 回車, Tab; var multiLine = first second thir...

    widuu 評論0 收藏0
  • Js apply()使用詳解

    摘要:方法詳解我在一開始看到的函數(shù)和時非常的模糊看也看不懂最近在網(wǎng)上看到一些文章對方法和的一些示例總算是看的有點眉目了在這里我做如下筆記希望和大家分享如有什么不對的或者說法不明確的地方希望讀者多多提一些意見以便共同提高主要我是要解決一下幾個問題和 Js apply方法詳解我在一開始看到j(luò)avascript的函數(shù)apply和call時,非常的模糊,看也看不懂,最近在網(wǎng)上看到一些文章對apply...

    iOS122 評論0 收藏0
  • 整理下《前端江湖面試》對自己有益的題目。

    摘要:面試題目匯總前言近期在找工作,也在讀前端面試江湖這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的題目,都是一些較為基礎(chǔ)的題目后期還會更新。,返回一個數(shù)組,成員為匹配的字符串。 面試題目匯總 前言 近期在找工作,也在讀 前端面試江湖 這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的...

    hikui 評論0 收藏0
  • 整理下《前端江湖面試》對自己有益的題目。

    摘要:面試題目匯總前言近期在找工作,也在讀前端面試江湖這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的題目,都是一些較為基礎(chǔ)的題目后期還會更新。,返回一個數(shù)組,成員為匹配的字符串。 面試題目匯總 前言 近期在找工作,也在讀 前端面試江湖 這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的...

    QLQ 評論0 收藏0
  • 整理下《前端江湖面試》對自己有益的題目。

    摘要:面試題目匯總前言近期在找工作,也在讀前端面試江湖這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的題目,都是一些較為基礎(chǔ)的題目后期還會更新。,返回一個數(shù)組,成員為匹配的字符串。 面試題目匯總 前言 近期在找工作,也在讀 前端面試江湖 這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的...

    Terry_Tai 評論0 收藏0

發(fā)表評論

0條評論

Cobub

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<