什么是數(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.MAX_VALUE
-
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