基本數據類型之undefined和null
undefined是表示未找到,是變量沒有正確賦值數據時,生成的數據類型
var int ; console.log(int)//undefined
null 是空表示賦值存儲的數據,是一個空數據,是一種特殊的數據類型 給變量直接賦值null注意英文字母必須小寫
var res = null;console.log(res) //null
null 是一種數值,表示空的數值
undefined是沒有被正確賦值
在JavaScript中,沒有定義變量存儲數據類型的種類,一個變量中可以存儲任意的數據類型
var int = 100; 存儲整數類型
int = '北京'; 存儲字符串類型
int = true; 存儲布爾類型
因為JavaScript中不限制變量存儲數據的數據類型,因此一個變量可以存儲任意的數據類型
但是在JavaScript中,執行程序時,有時需要指定的數據類型參與程序的執行
其他數據類型,原則上,不允許參與程序的執行
此時就需要將變量中的數據類型,轉化為指定的數據類型
舉例:
例如我們現在的銀行賬戶中存儲的都是 人民幣
但是你要出國,去了 美國 , 消費時,必須使用 美元
你要是超過,去了 歐洲 , 消費時,必須使用 歐元
總之,你去哪兒,就要兌換成當地的 幣種
就好像我們在某個程序執行時,必須要將變量中存儲的數據,轉換為指定的數據類型
在計算機語言中,數據類型的轉化,分為兩種形式
自動轉換 : 計算機程序執行時,自動完成的轉化
有的銀聯卡,你存儲的是人民幣,當你要消費美金時
會自動將人民幣轉化為美金來進行結算
這個轉化是銀行自動完成的,不需要我們人為參與
強制轉化 : 程序員人為的將數據類型轉化為指定的數據類型
我們拿着錢,去銀行櫃台,兌換成我們指定的幣種
// 其他數據類型,自動轉化為布爾類型
// 在 if 判斷語句執行時,其他數據類型會自動轉化為布爾類型
// 因為 在 if 語句中 ( ) 中 理論上只接受布爾類型數值 true 或者 false
// 如果輸入了其他數據類型數據,會自動轉化為布爾類型數據 true 或者 false
// 例如 if(true或者false) 可以執行
// 如果寫 if('北京') if('上海') if(100) 不是類型類型的數據
// 一定會先自動轉化為布爾類型的數值,再去進行相應程序的執行
// 其他數據類型轉化為布爾類型的原則
// 轉化為false的情況 : 數值 0 空字符串 '' undefined null NaN
// 其他情況都轉化為true
// 特別注意: 0.0 0.000000 等 在轉化為布爾類型時,都視為 數值 0
if( true / false){
// 如果()中是true,執行第一個{}中的語句
console.log('小括號里面寫的是true');
}else{
// 如果()中是false,執行else后第二個{}中的語句
console.log('小括號里面寫的是false');
}
// if()中應該寫 true 或者 false
// 如果寫其他數據類型
// 會自動轉化為 true 或者 false
// 轉化為 true 的執行 第一個{}中的程序代碼
// 轉化為 false 的執行 else后{}中的程序代碼
if(0){
console.log('轉化為true');
}else{
// 執行輸出這行代碼,證明 0 轉化為的是 false
console.log('轉化為false');
}
// 空字符串
if(''){
console.log('轉化為true');
}else{
// 執行輸出這行代碼,證明 ''空字符串 轉化為的是 false
console.log('轉化為false');
}
// undefined
if(undefined){
console.log('轉化為true');
}else{
// 執行輸出這行代碼,證明 undefined 轉化為的是 false
console.log('轉化為false');
}
// null
if(null){
console.log('轉化為true');
}else{
// 執行輸出這行代碼,證明 null 轉化為的是 false
console.log('轉化為false');
}
// NaN
if(NaN){
console.log('轉化為true');
}else{
// 執行輸出這行代碼,證明 NaN 轉化為的是 false
console.log('轉化為false');
}
// 0.000000
if(0.000000){
console.log('轉化為true');
}else{
// 執行輸出這行代碼,證明 0.000000 轉化為的是 false
console.log('轉化為false');
}
// 字符串 空格
if(' '){
// 執行輸出這行代碼,證明 ' '字符串空格 轉化為的是 true
console.log('轉化為true');
}else{
console.log('轉化為false');
}
// 數值 -1
if(-1){
// 執行輸出這行代碼,證明 -1 轉化為的是 true
console.log('轉化為true');
}else{
console.log('轉化為false');
}
// 總結:
// 1,只有5種情況是 false
// 數值0 包括 0 0.0 0.00000 等
// 空字符串 ''
// undefined
// null
// NaN
// 2,其他所有的情況,都會轉化為 true