JavaScript 數(shù)據(jù)類型

javascript是弱類型語言。即狰贯,一個(gè)變量可以賦不同數(shù)據(jù)類型的值宝鼓。javascript允許變量類型的隱式轉(zhuǎn)換刑棵,允許強(qiáng)制類型轉(zhuǎn)換等,如字符串和數(shù)值可以自動(dòng)轉(zhuǎn)化愚铡;而強(qiáng)類型語言一般不允許這么做铐望。

在JavaScript里 變量均為對(duì)象。當(dāng)聲明一個(gè)變量時(shí),就創(chuàng)建了一個(gè)新的對(duì)象正蛙;

基本類型:字符串(String)督弓、數(shù)字(Number)、布爾(Boolean)乒验、對(duì)空(Null)愚隧、未定義(Undefined)、Symbol(注:Symbol 是 ES6 引入了一種新的原始數(shù)據(jù)類型锻全,表示獨(dú)一無二的值狂塘。)。

對(duì)象類型:對(duì)象(Object)鳄厌、數(shù)組(Array)荞胡、函數(shù)(Function),還有兩個(gè)特殊的對(duì)象:正則(RegExp)和日期(Date)了嚎。

let x; // x 為 undefined?

let x = 5; // 現(xiàn)在 x 為數(shù)字

let x1 = 34.00; // 小數(shù)點(diǎn) 也是數(shù)字類型

let x ="John";// 現(xiàn)在 x 為字符串

let x = ["Q","C",1,3];// 數(shù)組 可以直接

let x = {name:'leo',age:17};// 對(duì)象

let t =function(){}// 函數(shù) function

// 變量類型的隱式轉(zhuǎn)換

let x1 =5;// 定義時(shí)是 typeof x1? number?

x1 ='json';// 通過賦值string 變成了 typeof x1? string?

?// 數(shù)組定義

let arr = [];

or?

let arr =newArray();

cars[0]="Saab";// 為數(shù)組第一項(xiàng)賦值

or

let arr = ["Saab"]

// 對(duì)象定義與數(shù)組類似

let arr = {};

or

let arr =newObject();

cars['name']="Saab";// 為對(duì)象添加key-value

or

let arr = {name:"Saab"}

變量的數(shù)據(jù)類型可以使用?typeof

typeof "leo"http:// 返回 string

typeof 2.67// 返回 number

typeof true// 返回 boolean

typeof ["Q","C"]// 返回 object

typeof {name:'leo', age:17}// 返回 object

typeof function(){}// 返回 function

typeof null// 返回 object//?

注:typeof 數(shù)組與對(duì)象泪漂,null都返回,object

// 如何區(qū)分他三呢歪泳?

let n =null;

console.log(n ===null);//? true

// 判斷數(shù)組

1萝勤,instanceof?

var arr = [1,2,3,1];

console.log(arr instanceof Array);// true?

2,constructor

var arr = [1,2,3,1];

console.log(arr.constructor=== Array);// true?

3呐伞,Object.prototype.toString

function isArrayFn(o){

return Object.prototype.toString.call(o) ==='[object Array]';

}

var arr = [1,2,3,1];

console.log(isArrayFn(arr));// true

4敌卓,es5 新增Array.isArray()

var arr = [1,2,3,1];

console.log(Array.isArray(arr));// true

// 補(bǔ)充幾個(gè)判斷 null/object/array 的工具類

// 通過 typeof

var getDataType = function(o){

????if(o===null){

????????return'null';? ?

?????} else if (typeof o =='object'){

????????if(typeof o.length =='number'){

????????????return 'Array';? ? ? ?

?????????}else{

????????????return 'Object';? ? ? ? ?

?????????}? ??

????}else{

????????return 'param is no object type';? ?

?????}

}

// 通過instanceof

var getDataType =function(o){

????if(o===null){

????????return'null';? ??

????}

????if(o instanceof Array){

????????return 'Array'

????}else if( o instanceof Object){

????????return'Object';? ??

????}else{

????????return'param is no object type';? ?

?????}

};

補(bǔ)充let,var伶氢,const區(qū)別

三者都是定義變量趟径,var/let 定義可變變量,區(qū)別在于癣防,var 會(huì)變量提升蜗巧,var允許重復(fù)聲明,而let不允許重復(fù)聲明劣砍,具體參看下面示例惧蛹;const 定義不可變變量

//變量提升

console.log(a);// undefined

var a =13;

var a =14;

// 相當(dāng)于

var a;// 只聲明沒有賦值扇救,默認(rèn)為undefined

console.log(a);

a =13;

//不允許重復(fù)聲明

let a =12

console.log(a)

let a =13// => 此行出錯(cuò):SyntaxError: Identifier 'a' has already been declared

console.log(a)

var a =12

let a =13// => SyntaxError: Identifier 'a' has already been declaredconsole.log(a)

let a =13

var a =12// => SyntaxError: Identifier 'a' has already been declaredconsole.log(a)

// const?

const a =1;

a =2;// 報(bào)錯(cuò)刑枝,不可修改const 的值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市迅腔,隨后出現(xiàn)的幾起案子装畅,更是在濱河造成了極大的恐慌,老刑警劉巖沧烈,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掠兄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蚂夕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門迅诬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人婿牍,你說我怎么就攤上這事侈贷。” “怎么了等脂?”我有些...
    開封第一講書人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵俏蛮,是天一觀的道長。 經(jīng)常有香客問我上遥,道長搏屑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任粉楚,我火速辦了婚禮辣恋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘解幼。我一直安慰自己抑党,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開白布撵摆。 她就那樣靜靜地躺著底靠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪特铝。 梳的紋絲不亂的頭發(fā)上暑中,一...
    開封第一講書人閱讀 50,021評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音鲫剿,去河邊找鬼鳄逾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛灵莲,可吹牛的內(nèi)容都是我干的雕凹。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼政冻,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼枚抵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起明场,我...
    開封第一講書人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤汽摹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苦锨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逼泣,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趴泌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拉庶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗜憔。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖氏仗,靈堂內(nèi)的尸體忽然破棺而出痹筛,到底是詐尸還是另有隱情,我是刑警寧澤廓鞠,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布帚稠,位于F島的核電站,受9級(jí)特大地震影響床佳,放射性物質(zhì)發(fā)生泄漏滋早。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一砌们、第九天 我趴在偏房一處隱蔽的房頂上張望杆麸。 院中可真熱鬧,春花似錦浪感、人聲如沸昔头。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揭斧。三九已至,卻和暖如春峻堰,著一層夾襖步出監(jiān)牢的瞬間讹开,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來泰國打工捐名, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留旦万,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓镶蹋,卻偏偏與公主長得像成艘,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贺归,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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