基本数据类型之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