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

[JS中的數(shù)據(jù)類型]

js中有五種基本數(shù)據(jù)類型(Number,String,Boolean,Undefined,Null),和一種復雜數(shù)據(jù)類型(Object)笤妙。

typeof 操作符

由于js中的變量是松散類型的唯咬,所以它提供了一種檢測當前變量的數(shù)據(jù)類型的方法,也就是typeof關(guān)鍵字.

typeof 123   //Number

typeof 'abc'  //String

typeof true //Boolean

typeof undefined //Undefined

typeof null //Object

typeof { } //Object

typeof [ ] //Object

typeof console.log() //Function

null類型進行typeof操作符后,結(jié)果是object财破,原因在于,null類型被當做一個空對象引用。

1.Number類型

Number類型包含整數(shù)和浮點數(shù)(浮點數(shù)數(shù)值必須包含一個小數(shù)點窝撵,且小數(shù)點后面至少有一位數(shù)字)兩種值。

NaN:非數(shù)字類型襟铭。特點:① 涉及到的 任何關(guān)于NaN的操作碌奉,都會返回NaN ② NaN不等于自身。

isNaN() 函數(shù)用于檢查其參數(shù)是否是非數(shù)字值寒砖。

isNaN(123) //false isNaN("hello") //true

2.String類型

字符串有l(wèi)ength屬性赐劣。

字符串轉(zhuǎn)換:轉(zhuǎn)型函數(shù)String(),適用于任何數(shù)據(jù)類型(null,undefined 轉(zhuǎn)換后為null和undefined);toString()方法(null,defined沒有toString()方法)哩都。

3.Boolean類型

該類型只有兩個值魁兼,true和false

4.Undefined類型

只有一個值,即undefined值漠嵌。使用var聲明了變量咐汞,但未給變量初始化值,那么這個變量的值就是undefined儒鹿。

5.Null類型

null類型被看做空對象指針化撕,前文說到null類型也是空的對象引用。

6.Object類型

js中對象是一組屬性與方法的集合约炎。這里就要說到引用類型了植阴,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起圾浅。引用類型有時候也被稱為對象定義掠手,因為它們描述的是一類對象所具有的屬性和方法。

三大引用類型

1.Object類型

我們看到的大多數(shù)類型值都是Object類型的實例狸捕,創(chuàng)建Object實例的方式有兩種喷鸽。

第一種是使用new操作符后跟Object構(gòu)造函數(shù),如下所示

var person = new Object();

person.name = "Micheal";

person.age = 24;

第二種方式是使用對象字面量表示法府寒,如下所示

var person = {

name : "Micheal",

age : 24

};

2.Array類型

數(shù)組的每一項可以用來保存任何類型的數(shù)據(jù)魁衙,也就是說报腔,可以用數(shù)組的第一個位置來保存字符串,第二個位置保存數(shù)值剖淀,第三個位置保存對象....另外纯蛾,數(shù)組的大小是可以動態(tài)調(diào)整的。

創(chuàng)建數(shù)組的基本方式有兩種

第一種是使用Array構(gòu)造函數(shù)纵隔,如下所示

var colors = new Array("red","blue","yellow");

第二種是使用數(shù)組字面量表示法翻诉,如下所示

var colors = ["red","blue","yellow"];

3 Function類型

每個函數(shù)都是Function類型的實例,而且都與其他引用類型一樣具有屬性和方法捌刮。函數(shù)通常是使用函數(shù)聲明語法定義的碰煌,如下所示

function sum(num1,num2){

return num1 + num2;

};

這和使用函數(shù)表達式定義函數(shù)的方式相差無幾。

var sun = function (){

return sum1 + sum2;

};

也就是說绅作,js按照存儲方式分為值類型和引用類型玷氏。那么他們的計算有什么區(qū)別呢锡足?

題目1: var a = 100;

var b = a;

a = 200;

console.log (b);

題目2: var a = {age : 20};

var b = a;

b.age = 21;

console.log (a.age);

題目1的答案是 100,題目2的答案是21,

題目1是簡單的值類型世落,在從一個變量向另一個變量賦值基本類型時狭瞎,會在該變量上創(chuàng)建一個新值匾乓,然后再把該值復制到為新變量分配的位置上懒震。

此時,a中保存的值為 100 岂贩,當使用 a 來初始化 b 時茫经,b 中保存的值也為100,但b中的100與a中的是完全獨立的萎津,該值只是a中的值的一個副本卸伞,此后,
這兩個變量可以參加任何操作而相互不受影響锉屈。也就是說基本類型在賦值操作后瞪慧,兩個變量是相互不受影響的。

題目2是引用類型部念,當從一個變量向另一個變量賦值引用類型的值時,同樣也會將存儲在變量中的對象的值復制一份放到為新變量分配的空間中氨菇。

這時保存在變量中的是對象在堆內(nèi)存中的地址儡炼,所以,與簡單賦值不同查蓉,這個值的副本實際上是一個指針乌询,而這個指針指向存儲在堆內(nèi)存的一個對象。那么賦值操作后豌研,
兩個變量都保存了同一個對象地址妹田,則這兩個變量指向了同一個對象唬党。因此,改變其中任何一個變量鬼佣,都會相互影響驶拱。

因此,引用類型的賦值其實是對象保存在棧區(qū)地址指針的賦值晶衷,因此兩個變量指向同一個對象蓝纲,任何的操作都會相互影響。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晌纫,一起剝皮案震驚了整個濱河市税迷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锹漱,老刑警劉巖箭养,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哥牍,居然都是意外死亡毕泌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門砂心,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懈词,“玉大人,你說我怎么就攤上這事辩诞】餐洌” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵译暂,是天一觀的道長抠忘。 經(jīng)常有香客問我,道長外永,這世上最難降的妖魔是什么崎脉? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮伯顶,結(jié)果婚禮上囚灼,老公的妹妹穿的比我還像新娘。我一直安慰自己祭衩,他們只是感情好灶体,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掐暮,像睡著了一般蝎抽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上路克,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天樟结,我揣著相機與錄音养交,去河邊找鬼。 笑死瓢宦,一個胖子當著我的面吹牛碎连,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播刁笙,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼破花,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疲吸?” 一聲冷哼從身側(cè)響起座每,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎摘悴,沒想到半個月后峭梳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蹂喻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年葱椭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片口四。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡孵运,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔓彩,到底是詐尸還是另有隱情治笨,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布赤嚼,位于F島的核電站旷赖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏更卒。R本人自食惡果不足惜等孵,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹂空。 院中可真熱鬧俯萌,春花似錦、人聲如沸上枕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姿骏。三九已至,卻和暖如春斤彼,著一層夾襖步出監(jiān)牢的瞬間分瘦,已是汗流浹背蘸泻。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嘲玫,地道東北人悦施。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像去团,于是被迫代替她去往敵國和親抡诞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)土陪,也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 簡介 JavaScript 語言的每一個值昼汗,都屬于某一種數(shù)據(jù)類型。JavaScript 的數(shù)據(jù)類型鬼雀,共有六種顷窒。(E...
    zzyo96閱讀 305評論 0 1
  • js中的數(shù)據(jù)類型分6種 1;string 字符串型源哩; 2鞋吉;Number;數(shù)字型励烦; 在js中數(shù)據(jù)類型就...
    pangzhi閱讀 354評論 0 1
  • `計算機顧名思義可以進行數(shù)學計算的機器,因此,計算機理所當然的可以處理各種數(shù)值,但是,計算機能夠處理的遠遠不只是數(shù)...
    吧啦啦小湯圓閱讀 411評論 0 0
  • 胡歌是我喜歡一個演員谓着。他扮演的角色都能讓我感受到他的敬業(yè)精神和魅力。在某年的金鷹節(jié)發(fā)表的獲獎感言讓我動容坛掠。那...
    教育雜談閱讀 370評論 0 1