成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js 中的數(shù)據(jù)類型

Jensen / 1660人閱讀

摘要:來(lái)自你不知道的對(duì)未初始化和未聲明的變量執(zhí)行操作符都返回了值類型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類型,這個(gè)特殊的值是。

基本類型
主要有:undefined、null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、Symbol

undefined

在使用 var,let,const 聲明變量但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是undefined

注意點(diǎn):

undefined 是一種類型 區(qū)別于 "undefined"

番外:作用域是一套規(guī)則,用于確定在何處以及如何查找變量(標(biāo)識(shí)符)。如果查找的目的是對(duì)變量進(jìn)行賦值,那么就會(huì)使用LHS查詢;如果目的是獲取變量的值,就會(huì)使用RHS查詢。RHS查詢找到了一個(gè)變量,但是你嘗試對(duì)這個(gè)變量的值進(jìn)行不合理的操作,比如試圖對(duì)一個(gè)非函數(shù)類型的值進(jìn)行函數(shù)調(diào)用,或著引用null或undefined類型的值中的屬性,那么引擎會(huì)拋出另外一種類型的異常,叫作TypeError。ReferenceError同作用域判別失敗相關(guān),而TypeError則代表作用域判別成功了,但是對(duì)結(jié)果的操作是非法或不合理的。 來(lái)自--《你不知道的JS》

對(duì)未初始化和未聲明的變量執(zhí)行typeof操作符都返回了undefined值;

null

Null類型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類型,這個(gè)特殊的值是null。從邏輯角度來(lái)看,null值表示一個(gè)空對(duì)象指針,而這也正是使用typeof操作符檢測(cè)null值時(shí)會(huì)返回"object"的原因

注意點(diǎn) undefined與null的關(guān)系


== 操作符會(huì)進(jìn)行隱式轉(zhuǎn)換 === 不會(huì)

Boolean

注意點(diǎn):

Number

注意點(diǎn)

NAN
NAN 與任何值進(jìn)行運(yùn)算都是NAN
NAN 與任何值都不相等 包括它自己

對(duì)于字符串轉(zhuǎn)換 用parseInt(),parseFloat 轉(zhuǎn)換空字符串會(huì)返回NaN(Number()對(duì)空字符返回 0)

String

幾乎所有值都具有toString() 方法;

Symbol

引用類型
Object 、Array
基本引用類型

如下~

var str = "hello"; //string 基本類型
var s2 = str.charAt(0);
alert(s2); // h

毫無(wú)疑問(wèn)上面的string是一個(gè)基本類型,但是它卻能召喚出一個(gè) charAt() 的方法,這是什么原因呢?
主要是因?yàn)樵诨绢愋椭?,有三個(gè)比較特殊的存在就是:String Number Boolean,這三個(gè)基本類型都有自己對(duì)應(yīng)的包裝對(duì)象。并且隨時(shí)等候召喚。包裝對(duì)象呢,其實(shí)就是對(duì)象,有相應(yīng)的屬性和方法。至于這個(gè)過(guò)程是怎么發(fā)生呢,其實(shí)是在后臺(tái)偷偷發(fā)生的。

//我們平常寫程序的過(guò)程:
var str = "hello"; //string 基本類型
var s2 = str.charAt(0); //在執(zhí)行到這一句的時(shí)候 后臺(tái)會(huì)自動(dòng)完成以下動(dòng)作 :
( 
 var _str = new String("hello"); // 1 找到對(duì)應(yīng)的包裝對(duì)象類型,然后通過(guò)包裝對(duì)象創(chuàng)建出一個(gè)和基本類型值相同的對(duì)象
 var s2 = _str.chaAt(0); // 2 然后這個(gè)對(duì)象就可以調(diào)用包裝對(duì)象下的方法,并且返回結(jié)給s2.
 _str = null;  //    3 之后這個(gè)臨時(shí)創(chuàng)建的對(duì)象就被銷毀了, str =null; 
 ) 
alert(s2);//h 
alert(str);//hello    

注意這是一瞬間的動(dòng)作 實(shí)際上我們沒(méi)有改變字符串本身的值。就是做了下面的動(dòng)作.這也是為什么每個(gè)字符串具有的方法并沒(méi)有改變字符串本身的原因。

由此我們可以知道,引用類型和基本包裝對(duì)象的區(qū)別在于:生存期
引用類型所創(chuàng)建的對(duì)象,在執(zhí)行的期間一直在內(nèi)存中,而基本包裝對(duì)象只是存在了一瞬間。

所以我們無(wú)法直接給基本類型添加方法:

var str = "hello";
str.number = 10; //假設(shè)我們想給字符串添加一個(gè)屬性number ,后臺(tái)會(huì)有如下步驟
{ 
 var _str = new String("hello"); // 1 找到對(duì)應(yīng)的包裝對(duì)象類型,然后通過(guò)包裝對(duì)象創(chuàng)建出一個(gè)和基本類型值相同的對(duì)象
  _str.number = 10; // 2 通過(guò)這個(gè)對(duì)象調(diào)用包裝對(duì)象下的方法 但結(jié)果并沒(méi)有被任何東西保存
 _str =null; // 3 這個(gè)對(duì)象又被銷毀
 }
alert(str.number); //undefined  當(dāng)執(zhí)行到這一句的時(shí)候,因?yàn)榛绢愋捅緛?lái)沒(méi)有屬性,后臺(tái)又會(huì)重新重復(fù)上面的步驟
{ 
 var str = new String("hello"); // 1 找到基本包裝對(duì)象,然后又新開(kāi)辟一個(gè)內(nèi)存,創(chuàng)建一個(gè)值為hello對(duì)象
 str.number = undefined   // 2 因?yàn)榘b對(duì)象下面沒(méi)有number這個(gè)屬性,所以又會(huì)重新添加,因?yàn)闆](méi)有值,所以值是未定義;然后彈出結(jié)果
 str =null; // 3 這個(gè)對(duì)象又被銷毀
 }

那么我們?cè)趺床拍芙o基本類型添加方法或者屬性呢?
答案是在基本包裝對(duì)象的原型下面添加,每個(gè)對(duì)象都有原型。

//給字符串添加方法  要寫到對(duì)應(yīng)的包裝對(duì)象的原型下才行
var str = "hello";
String.prototype.last= fuction(){ 
    return this.charAt(this.length);
}; 
str.last(); // 5 執(zhí)行到這一句,后臺(tái)依然會(huì)偷偷的干這些事
{ 
    var _str = new String("hello");// 找到基本包裝對(duì)象,new一個(gè)和字符串值相同的對(duì)象,
    _str.last();  // 通過(guò)這個(gè)對(duì)象找到了包裝對(duì)象下的方法并調(diào)用 
    _str =null; //  這個(gè)對(duì)象被銷毀
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103857.html

相關(guān)文章

  • JS中的六大數(shù)據(jù)類型

    摘要:創(chuàng)建數(shù)組的基本方式有兩種第一種是使用構(gòu)造函數(shù),如下所示第二種是使用數(shù)組字面量表示法,如下所示類型每個(gè)函數(shù)都是類型的實(shí)例,而且都與其他引用類型一樣具有屬性和方法。 js中有六種數(shù)據(jù)類型,包括五種基本數(shù)據(jù)類型(Number,String,Boolean,Undefined,Null),和一種復(fù)雜數(shù)據(jù)類型(Object)。 typeof 操作符由于js中的變量是松散類型的,所以它提供了一種檢...

    劉厚水 評(píng)論0 收藏0
  • js的輸出方式以及js的基本數(shù)據(jù)類型

    摘要:的輸出方式瀏覽器彈出警告彈框,它會(huì)阻塞代碼執(zhí)行彈框,它顯示的內(nèi)容會(huì)默認(rèn)轉(zhuǎn)換成字符串顯示例如彈出一個(gè)可輸入的彈框,還有兩個(gè)按鈕確認(rèn)和取消點(diǎn)擊確定,返回在輸入框輸入的內(nèi)容,點(diǎn)擊取消返回空確認(rèn)彈框有兩個(gè)按鈕,確認(rèn)和取消,點(diǎn)擊確認(rèn)返回為點(diǎn)擊取消為, js的輸出方式: 1、alert();瀏覽器彈出警告彈框,它會(huì)阻塞代碼執(zhí)行;alert彈框,它顯示的內(nèi)容會(huì)默認(rèn)轉(zhuǎn)換成字符串顯示; 例如:alert...

    weizx 評(píng)論0 收藏0
  • js筆記內(nèi)容

    摘要:定義運(yùn)算符用來(lái)判斷一個(gè)構(gòu)造函數(shù)的屬性所指向的對(duì)象是否存在另外一個(gè)要檢測(cè)對(duì)象的原型鏈上,用于引用類型。但其實(shí),實(shí)例的來(lái)自于構(gòu)造函數(shù)的。 一、關(guān)于css 樣式優(yōu)先級(jí): 行內(nèi)樣式>id選擇器樣式>類選擇器樣式>標(biāo)簽選擇器樣式>通配符選擇器的樣式>繼承樣式>默認(rèn)樣式 二、關(guān)于js 關(guān)于問(wèn)題:**JavaScript中的所有事物都是對(duì)象??** 從typeof和instanceo...

    n7then 評(píng)論0 收藏0
  • JS數(shù)據(jù)類型 與 內(nèi)存堆棧

    摘要:所以相對(duì)于簡(jiǎn)單數(shù)據(jù)類型而言,他們占用內(nèi)存比較小,如果放在堆中,查找會(huì)浪費(fèi)很多時(shí)間,而把堆中的數(shù)據(jù)放入棧中也會(huì)影響棧的效率。六總結(jié)本文總結(jié)了數(shù)據(jù)類型及其聲明賦值更新時(shí)在內(nèi)存堆棧中的表現(xiàn),可以更深入的理解這些數(shù)據(jù)類型。 JS數(shù)據(jù)類型 與 內(nèi)存堆棧 一、前言 JS的數(shù)據(jù)類型已經(jīng)是大家都很熟悉的東西了,但是大家是否對(duì)這些數(shù)據(jù)類型在內(nèi)存中的分配了解,甚至在操作這些變量時(shí),內(nèi)存中是如何表現(xiàn)的,本文...

    nodejh 評(píng)論0 收藏0
  • 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)及js數(shù)據(jù)存儲(chǔ)

    摘要:引用數(shù)據(jù)類型及堆內(nèi)存引用數(shù)據(jù)類型是保存在堆內(nèi)存中的對(duì)象,他的大小是不固定的。基礎(chǔ)數(shù)據(jù)類型在變量對(duì)象里可以直接對(duì)應(yīng)對(duì)應(yīng)的值,而引用數(shù)據(jù)類型是存儲(chǔ)在堆里的,在變量對(duì)象中對(duì)應(yīng)的是堆內(nèi)存的地址。因?yàn)槲覀冃薷谋举|(zhì)上是修改了堆內(nèi)存里的數(shù)據(jù)。 ? ??? ??因?yàn)橐郧扒岸碎_(kāi)發(fā)跟數(shù)據(jù)存儲(chǔ)打交道比較少,javascript又具有自動(dòng)垃圾回收機(jī)制。數(shù)據(jù)結(jié)構(gòu)以及存儲(chǔ)相關(guān)的概念,其實(shí)是很容易被前端er忽略的。...

    Brenner 評(píng)論0 收藏0
  • JS的{} + {}與{} + []的結(jié)果是什么?

    摘要:對(duì)于與的設(shè)計(jì)在中所設(shè)計(jì)的純對(duì)象類型的與方法,它們的返回如下方法返回值對(duì)象本身。與三個(gè)強(qiáng)制轉(zhuǎn)換函數(shù),所對(duì)應(yīng)的就是在標(biāo)準(zhǔn)中的三個(gè)內(nèi)部運(yùn)算轉(zhuǎn)換的對(duì)照表。 在JS中的運(yùn)算符共同的情況中,(+)符號(hào)是很常見(jiàn)的一種,它有以下的使用情況: 數(shù)字的加法運(yùn)算,二元運(yùn)算 字符串的連接運(yùn)算,二元運(yùn)算,最高優(yōu)先 正號(hào),一元運(yùn)算,可延伸為強(qiáng)制轉(zhuǎn)換其他類型的運(yùn)算元為數(shù)字類型 當(dāng)然,如果考慮多個(gè)符號(hào)一起使用時(shí),...

    2json 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<