什么是數(shù)據(jù)肄扎?
- 生活中無(wú)時(shí)無(wú)刻都在跟數(shù)據(jù)打交道
- 例如:人的體重、身高施戴、收入反浓、性別等數(shù)據(jù)等
- 在我們使用計(jì)算機(jī)的過(guò)程中,也會(huì)接觸到各種各樣的數(shù)據(jù)
- 例如: 文檔數(shù)據(jù)赞哗、圖片數(shù)據(jù)雷则、視頻數(shù)據(jù)等
數(shù)據(jù)分類
- 靜態(tài)的數(shù)據(jù)
-
靜態(tài)數(shù)據(jù)是指一些永久性的數(shù)據(jù),一般存儲(chǔ)在硬盤中肪笋。硬盤的存儲(chǔ)空間一般都比較大月劈,現(xiàn)在普通計(jì)算機(jī)的硬盤都有500G左右,因此硬盤中可以存放一些比較大的文件
- 哪些是靜態(tài)數(shù)據(jù):靜態(tài)數(shù)據(jù)一般是以文件的形式存儲(chǔ)在硬盤上藤乙,比如文檔猜揪、照片、視頻等坛梁。
- 動(dòng)態(tài)的數(shù)據(jù)
-
動(dòng)態(tài)數(shù)據(jù)指在程序運(yùn)行過(guò)程中而姐,動(dòng)態(tài)產(chǎn)生的臨時(shí)數(shù)據(jù),一般存儲(chǔ)在內(nèi)存中划咐。內(nèi)存的存儲(chǔ)空間一般都比較小拴念,現(xiàn)在普通計(jì)算機(jī)的內(nèi)存只有8G左右钧萍,因此要謹(jǐn)慎使用內(nèi)存,不要占用太多的內(nèi)存空間
- 哪些是動(dòng)態(tài)數(shù)據(jù):當(dāng)運(yùn)行某個(gè)程序(軟件)時(shí)政鼠,整個(gè)程序就會(huì)被加載到內(nèi)存中风瘦,在程序運(yùn)行過(guò)程中,會(huì)產(chǎn)生各種各樣的臨時(shí)數(shù)據(jù)公般,這些臨時(shí)數(shù)據(jù)都是存儲(chǔ)在內(nèi)存中的万搔。當(dāng)程序停止運(yùn)行或者計(jì)算機(jī)被強(qiáng)制關(guān)閉時(shí),這個(gè)程序產(chǎn)生的所有臨時(shí)數(shù)據(jù)都會(huì)被清除官帘。
JavaScript數(shù)據(jù)類型概述
- 作為程序員最關(guān)心的是內(nèi)存中的
動(dòng)態(tài)數(shù)據(jù)
, 因?yàn)槲覀儗懙某绦蚓褪窃趦?nèi)存中的
- 程序在運(yùn)行過(guò)程中會(huì)產(chǎn)生各種各樣的臨時(shí)數(shù)據(jù), 為了方便數(shù)據(jù)的運(yùn)算和操作, JavaScript對(duì)這些數(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 對(duì)象(引用數(shù)據(jù)類型)
- 如何查看數(shù)據(jù)類型?
- 使用typeof操作符可以用來(lái)檢查數(shù)據(jù)類型瞬雹。
- 使用格式:typeof 數(shù)據(jù),例如 typeof 123; typeof num;
console.log(typeof 123); // number
var num = 10;
console.log(typeof num); // number
- typeof操作符會(huì)將檢查的結(jié)果以字符串的形式返回給我們
var value= 10;
// 此時(shí)將value的數(shù)據(jù)類型number以字符串返回給我們, 存入到res變量中
var res = typeof value;
// 此時(shí)檢查res的數(shù)據(jù)類型為string, 證明typeof返回給我們的是一個(gè)字符串
console.log(typeof res); // string
字符串類型
- String用于表示一個(gè)字符序列遏佣,即字符串
- 字符串需要使用
’
或“
括起來(lái)
var str1 = "hello";
var str2 = `nj`;
var str5 = `hello nj"; // 錯(cuò)誤
console.log(typeof str1 ); // string
console.log(typeof str2); // string
- 相同引號(hào)不能嵌套挖炬,不同引號(hào)可以嵌套
- 給變量加上引號(hào), 那么變量將變?yōu)橐粋€(gè)常量
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
- 無(wú)窮大:Infinity, 如果超過(guò)了最大值就會(huì)返回該值
console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
- 無(wú)窮凶瓷簟:-Infinity, 如果超過(guò)了最小值就會(huì)返回該值
console.log(typeof Infinity); // number
console.log(typeof -Infinity); // number
- NaN 非法數(shù)字(Not A Number),JS中當(dāng)對(duì)數(shù)值進(jìn)行計(jì)算時(shí)沒(méi)有結(jié)果返回,則返回NaN
var num3 = NaN;
console.log(typeof num3); // number
- Number類型注意點(diǎn)
Boolean 布爾類型
- 布爾型也被稱為邏輯值類型或者真假值類型
- 布爾型只能夠取真(true)和假(false)兩種數(shù)值
var bool1 = true;
var bool2 = false;
console.log(typeof bool1); // boolean
console.log(typeof bool2); // boolean
- 雖然Boolean 類型的字面值只有兩個(gè)馅巷,但 ECMAScript 中所有類型的值都有與這兩個(gè) Boolean 值等價(jià)的值
- 任何非零數(shù)值都是true, 包括正負(fù)無(wú)窮大, 只有0和NaN是false
- 任何非空字符串都是true, 只有空字符串是false
- 任何對(duì)象都是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"一樣是一個(gè)常量
- 后者Undefined和Number,Boolean一樣是一個(gè)數(shù)據(jù)類型
- 需要注意的是typeof對(duì)沒(méi)有初始化和沒(méi)有聲明的變量都會(huì)返回undefined钓猬。
var value1 = undefined;
console.log(typeof value); //結(jié)果是undefined
var value2;
console.log(typeof value2); //結(jié)果是undefined
- Null 類型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類型稍刀,這個(gè)特殊的值是 null
- 從語(yǔ)義上看null表示的是一個(gè)空的對(duì)象。所以使用typeof檢查null會(huì)返回一個(gè)Object
var test1= null;
console.log(typeof test1);
- undefined值實(shí)際上是由null值衍生出來(lái)的敞曹,所以如果比較undefined和null是否相等账月,會(huì)返回true
var test1 = null;
var test2 = undefined;
console.log(test1 == test2);
console.log(test1 === test2);