版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41638795/article/details/81193900
一.数据类型
基本数据类型:
Number String Boolean null undefined
1.Undefined-未定义类型
1)未被赋值的变量,值为undefined
var a;
alert(a); //undefined
2)未被赋值的变量与根本不存在的变量(未声明的变量)
var a;
alert(b) //b is not defined
2.Null类型
1)只有一个值的数据类型,即特殊的值null
它表示一个空对象引用(指针),而typeof操作符检测null会返回object
var a=null;
alert(typeof(a)); //object
注意:
对于null和undefined,都表示“值的空缺”,判断相等运算“==”认为两者是相等的,因此需要用严格相等运算符“===”来区分它们,而且它们不等于任何值。
3.Boolean
使用转换函数Boolean(),将一个值转换为其对应的Boolean值
var a='hello';
var b=Boolean(a);
alert(typeof(b)); //boolean
其他类型转换成Boolean类型规则
数据类型 | 转换为true的值 | 转换为false的值 |
Boolean | true | false |
String | 任何非空字符串 | 空字符串 |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | undefined |
4.Number类型
NaN:即非数值(Not a Number)是一个特殊的值
用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误)
isNaN()函数:用于判断值是不是NaN,该函数在接收到一个值之后,会尝试将这个值转换成数值
console.log(isNaN(NaN)); //true
console.log(isNaN(3)); //false 3是一个数值
console.log(isNaN('3')); //false '3'是一个字符串数值,可以转成数值
console.log(isNaN('hello')); //true 'hello'不能转为数值
console.log(isNaN(true)); //false true可以转为1
console.log(isNaN(false)); //false false可以转为0
注意:
var a = 0/0;
var b = 3/0;
var c=3/0*0;
console.log(a); //NaN
console.log(b); //Infinity 无穷
console.log(c); //NaN
补:
类型转换结果:
Boolean([]); //true
Number([]); //0
Number({}); //NaN
Number(false); //0
console.log(([])?true:false); //true
console.log([]==false?true:false); //true
console.log({}==false?true:false); //false