03-JavaScript基礎(chǔ)-數(shù)據(jù)及數(shù)據(jù)類型

什么是數(shù)據(jù)蒲稳?

  • 生活中無時無刻都在跟數(shù)據(jù)打交道

    • 例如:人的體重氮趋、身高、收入江耀、性別等數(shù)據(jù)等
  • 在我們使用計算機(jī)的過程中剩胁,也會接觸到各種各樣的數(shù)據(jù)

    • 例如: 文檔數(shù)據(jù)、圖片數(shù)據(jù)祥国、視頻數(shù)據(jù)等

數(shù)據(jù)分類

  • 靜態(tài)的數(shù)據(jù)

    • 靜態(tài)數(shù)據(jù)是指一些永久性的數(shù)據(jù)昵观,一般存儲在硬盤中。硬盤的存儲空間一般都比較大舌稀,現(xiàn)在普通計算機(jī)的硬盤都有500G左右啊犬,因此硬盤中可以存放一些比較大的文件
    • 存儲的時長:計算機(jī)關(guān)閉之后再開啟,這些數(shù)據(jù)依舊還在壁查,只要你不主動刪掉或者硬盤沒壞觉至,這些數(shù)據(jù)永遠(yuǎn)都在
    • 哪些是靜態(tài)數(shù)據(jù):靜態(tài)數(shù)據(jù)一般是以文件的形式存儲在硬盤上,比如文檔睡腿、照片语御、視頻等。
  • 動態(tài)的數(shù)據(jù)

    • 動態(tài)數(shù)據(jù)指在程序運行過程中嫉到,動態(tài)產(chǎn)生的臨時數(shù)據(jù)沃暗,一般存儲在內(nèi)存中。內(nèi)存的存儲空間一般都比較小何恶,現(xiàn)在普通計算機(jī)的內(nèi)存只有8G左右孽锥,因此要謹(jǐn)慎使用內(nèi)存,不要占用太多的內(nèi)存空間
    • 存儲的時長:計算機(jī)關(guān)閉之后,這些臨時數(shù)據(jù)就會被清除
    • 哪些是動態(tài)數(shù)據(jù):當(dāng)運行某個程序(軟件)時惜辑,整個程序就會被加載到內(nèi)存中唬涧,在程序運行過程中,會產(chǎn)生各種各樣的臨時數(shù)據(jù)盛撑,這些臨時數(shù)據(jù)都是存儲在內(nèi)存中的碎节。當(dāng)程序停止運行或者計算機(jī)被強(qiáng)制關(guān)閉時,這個程序產(chǎn)生的所有臨時數(shù)據(jù)都會被清除抵卫。
  • 既然硬盤的存儲空間這么大狮荔,為何不把所有的應(yīng)用程序加載到硬盤中去執(zhí)行呢?

    • 主要原因就是內(nèi)存的訪問速度比硬盤快N倍

  • 靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)的相互轉(zhuǎn)換
    • 也就是從磁盤加載到內(nèi)存
  • 動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)的相互轉(zhuǎn)換
    • 也就是從內(nèi)存保存到磁盤
  • 數(shù)據(jù)的計量單位
    • 不管是靜態(tài)還是動態(tài)數(shù)據(jù)介粘,都是0和1組成的
    • 數(shù)據(jù)越大殖氏,包含的0和1就越多
1 B(Byte字節(jié)) = 8 bit(位)
// 00000000 就是一個字節(jié)
// 111111111 也是一個字節(jié)
// 10101010 也是一個字節(jié)
// 任意8個0和1的組合都是一個字節(jié)
1 KB(KByte) = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB

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

  • 作為程序員最關(guān)心的是內(nèi)存中的動態(tài)數(shù)據(jù), 因為我們寫的程序就是在內(nèi)存中的

  • 程序在運行過程中會產(chǎn)生各種各樣的臨時數(shù)據(jù), 為了方便數(shù)據(jù)的運算和操作, JavaScript對這些數(shù)據(jù)進(jìn)行了分類, 提供了豐富的數(shù)據(jù)類型

  • 在JS中一共有六種數(shù)據(jù)類型

    • Number 數(shù)值(基本數(shù)據(jù)類型)
    • String 字符串(基本數(shù)據(jù)類型)
    • Boolean 布爾(基本數(shù)據(jù)類型)
    • Undefined 未定義(基本數(shù)據(jù)類型)
    • Null 空值(基本數(shù)據(jù)類型)
    • Object 對象(引用數(shù)據(jù)類型)
  • 如何查看數(shù)據(jù)類型?

    • 使用typeof操作符可以用來檢查數(shù)據(jù)類型。
    • 使用格式:typeof 數(shù)據(jù)姻采,例如 typeof 123; typeof num;
    console.log(typeof 123); // number
    var num = 10;
    console.log(typeof num); // number
    
    • typeof操作符會將檢查的結(jié)果以字符串的形式返回給我們
    var value= 10;
    // 此時將value的數(shù)據(jù)類型number以字符串返回給我們, 存入到res變量中
    var res = typeof value; 
    // 此時檢查res的數(shù)據(jù)類型為string, 證明typeof返回給我們的是一個字符串
    console.log(typeof res); // string
    

字符串類型

  • String用于表示一個字符序列雅采,即字符串
  • 字符串需要使用 ’或“ 括起來
var str1 = "hello";
var str2 = `nj`;
var str5 = `hello nj"; // 錯誤
console.log(typeof str1 ); // string
console.log(typeof str2); // string
  • 相同引號不能嵌套,不同引號可以嵌套
    • 雙引號不能放雙引號慨亲,單引號不能放單引號
var str3 = "hello "nj""; // 錯誤
var str4 = `hello `nj``; // 錯誤
var str5 = "hello 'nj'"; // 正確
var str6 = `hello "nj"`;// 正確
  • 給變量加上引號, 那么變量將變?yōu)橐粋€常量
var num = 110;
console.log(num); // 輸出變量中的值
console.log("num"); // 輸出常量num

Number類型

  • 在JS中所有的數(shù)值都是Number類型(整數(shù)和小數(shù))
var num1= 123;
var num2= 3.14;
console.log(typeof num1); // number
console.log(typeof num2); // number
  • 由于內(nèi)存的限制婚瓜,ECMAScript 并不能保存世界上所有的數(shù)值

    • 最大值:Number.MAX_VALUE
      console.log(Number.MAX_VALUE);  // 1.7976931348623157e+308
      
    • 最小值:Number.MIN_VALUE
      console.log(Number.MIN_VALUE);  // 5e-324
      
    • 無窮大:Infinity, 如果超過了最大值就會返回該值
      console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
      
    • 無窮小:-Infinity, 如果超過了最小值就會返回該值
       console.log(typeof Infinity); // number
       console.log(typeof -Infinity); // number
      
    • NaN 非法數(shù)字(Not A Number),JS中當(dāng)對數(shù)值進(jìn)行計算時沒有結(jié)果返回刑棵,則返回NaN
      var num3 = NaN;
      console.log(typeof num3); // number
      
  • Number類型注意點

    • JS中整數(shù)的運算可以保證精確的結(jié)果
    var sum1 = 10 + 20;
    console.log(sum1); // 30
    
    • 在JS中浮點數(shù)的運算可能得到一個不精確的結(jié)果
    var sum1 = 10.1 + 21.1;
    console.log(sum1); // 31.200000000000003
    

Boolean 布爾值

  • 布爾型也被稱為邏輯值類型或者真假值類型
  • 布爾型只能夠取真(true)和假(false)兩種數(shù)值
var bool1 = true;
var bool2 = false;
console.log(typeof bool1); // boolean
console.log(typeof bool2); // boolean
  • 雖然Boolean 類型的字面值只有兩個巴刻,但 ECMAScript 中所有類型的值都有與這兩個 Boolean 值等價的值
    • 任何非零數(shù)值都是true, 包括正負(fù)無窮大, 只有0和NaN是false
    • 任何非空字符串都是true, 只有空字符串是false
    • 任何對象都是true, 只有null和undefined是false
var bool3 = Boolean(0);
console.log(bool3); // false
var bool4 = Boolean(1);
console.log(bool4); // true
var bool5 = Boolean(-1);
console.log(bool4); // true
var bool6 = Boolean(Infinity);
console.log(bool4); // true
var bool7 = Boolean(-Infinity);
console.log(bool4); // true
var bool8 = Boolean(NaN);
console.log(bool8); // false
var bool9 = Boolean(undefined);
console.log(bool8); // false
var bool10 = Boolean(null);
console.log(bool8); // false
var bool11 = Boolean("");
console.log(bool8); // false
var bool12 = Boolean("abc");
console.log(bool12); // true

Null和Undefined

  • Undefined這是一種比較特殊的類型,表示變量未賦值铐望,這種類型只有一種值就是undefined
var num;
console.log(num);  //結(jié)果是undefined
  • undefined是Undefined類型的字面量
    • 前者undefined和10, "abc"一樣是一個常量
    • 后者Undefined和Number,Boolean一樣是一個數(shù)據(jù)類型
    • 需要注意的是typeof對沒有初始化和沒有聲明的變量都會返回undefined冈涧。
var value1 = undefined;
console.log(typeof value); //結(jié)果是undefined

var value2;
console.log(typeof  value2); //結(jié)果是undefined
  • Null 類型是第二個只有一個值的數(shù)據(jù)類型,這個特殊的值是 null
  • 從語義上看null表示的是一個空的對象正蛙。所以使用typeof檢查null會返回一個Object
var test1= null;
console.log(typeof test1);
  • undefined值實際上是由null值衍生出來的督弓,所以如果比較undefined和null是否相等,會返回true
var test1 = null;
var test2 = undefined;
console.log(test1 == test2);
console.log(test1 === test2);

學(xué)習(xí)交流方式:
1.微信公眾賬號搜索: 李南江(配套視頻,代碼,資料各種福利獲取)
2.加入前端學(xué)習(xí)交流群:
302942894 / 289964053 / 11550038

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乒验,一起剝皮案震驚了整個濱河市愚隧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锻全,老刑警劉巖狂塘,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鳄厌,居然都是意外死亡荞胡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門了嚎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泪漂,“玉大人廊营,你說我怎么就攤上這事÷芮冢” “怎么了露筒?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敌卓。 經(jīng)常有香客問我慎式,道長,這世上最難降的妖魔是什么趟径? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任瘪吏,我火速辦了婚禮,結(jié)果婚禮上舵抹,老公的妹妹穿的比我還像新娘肪虎。我一直安慰自己,他們只是感情好惧蛹,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刑枝,像睡著了一般香嗓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上装畅,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天靠娱,我揣著相機(jī)與錄音,去河邊找鬼掠兄。 笑死像云,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蚂夕。 我是一名探鬼主播迅诬,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼婿牍!你這毒婦竟也來了侈贷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤等脂,失蹤者是張志新(化名)和其女友劉穎俏蛮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體上遥,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡搏屑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了粉楚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辣恋。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抑党,到底是詐尸還是另有隱情包警,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布底靠,位于F島的核電站害晦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏暑中。R本人自食惡果不足惜壹瘟,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳄逾。 院中可真熱鬧稻轨,春花似錦、人聲如沸雕凹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枚抵。三九已至线欲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汽摹,已是汗流浹背李丰。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留逼泣,地道東北人趴泌。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像拉庶,于是被迫代替她去往敵國和親嗜憔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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