一共有6种简单的数据类型,也称为原始类型:Undefined Null Boolean Number. String Symbol,Object
1.调用typeof操作符来返回自己数据类型对应的字符串
可能有几种返回情况
undefined
boolean
string
number
object
function
symbol
但是,使用typeof来测验null的时候,会返回object,因为特殊值Null被认为是一个对空对象的引用
2.区分undefined和null
Undefined类型只有一个值,就是特殊值undefined,当使用var或者let声明了变量但是没有初始化的时候,就相当于给变量赋值了undefined值,而增加这个是为了正式明确空指针null和未初始化变量的区别,对于没有初始化的变量一般只能进行一个操作,就是typeof结果就是undefined,并且undefined是一个假值,也就是说
let message;//变量只是声明了,只不过值是undefined
let age=null;
if(message){
//这个代码块不会执行
}
if(!message){
//这个代码块会进行执行
}
if(age){
//这个块不会执行
}
if(!age){
//这个代码块会执行
}
nuLl类型同样只有一个值,也就是特殊值null,表示一个空对象指针,所以使用typeof也会返回object,null是一个假值
console.log(null==undefined)//true
console.log(null===undefined)//false,这个是全等比较
null表示此处没有对象,即不应该有值
undefined表示缺少值,就是此处应该有一个值,但是还没有定义
如果想要将其它数值类型的值转换为布尔值,可以调用特定的Boolean转换函数
let message="Hello World";
let messageAsBoolean=Boolean(message);
Number类型
16进制的方式:开头ox
8进制:0开头
如果超出了进制的范围,会自动当成10进制来处理
科学计数法:
float floatNum=3.12e7;
浮点数没有整数精确,因此永远不要测试某个特定的浮点值
最小的数值:Number.MIN_VALUE中,如果超出范围,会自动转换为一个特殊的Infinity(无穷值,)如果判断一个数是否是有限大,使用isFinite()
NaN不是数值,比如,0除任意值在其它语言都是导致错误,但是,会返回NaN
1.任何涉及NaN的操作,都会返回NaN,但是NaN不包括NaN在内的任何值
console.log(NaN==NaN);//false
有一个isNaN函数来接收,判断是参数是否“不是数值”
console.log(isNaN(NaN));//true
console.log(isNaN(10));//false。10是数值
console.log(isNaN("10"));//false,不可以转换为数值10
console.log(isNaN("blue"));//false,不可以转换为数值
console.log(isNaN("true"));//true可以转化为数值1
4.数值转换,Number函数
1.布尔值;true返回1,false返回0;
2.数值
3.null:返回0
4.undefined:返回NaN
5.字符串:如果是16进制,会返回对应的10进制数,如果是空字符串,返回的是0,,其它的包含字母话是NaN
6.对象,会调用valeof方法,并按照以上的规则转换返回的值
由于
考虑到Number函数来转换字符串的时候相对复杂还会有些反常规,所通常考虑的是parseInt函数,从第一个非空字符串开始转换,如果第一个字符不是—+或者数组,parseInt直接返回NaN,也就是说空的字符串也会返回Nan但是Number会返回0,接下来的操作中“1234blue"会返回1234.后面额自动忽略
int num1=parseInt("1234blue");
int num2=pareseInt("");
let num3=parseInt("oxA");
let num=parseInt("0xAF",16);//175
let num5=parseInt("AF");
let num3=parseInt("10",2);//2.按照2进制进行解析
let num3=parseInt("10",8);//8.按照8进制进行解析
let num3=parseInt("10",10);//10.按照10进制进行解析
let num3=parseInt("10",16);//2.按照16进制进行解析
parseFloat()如果字符串表示整数,则返回整数
let num1=parseFloat("1234blut");//1234按照整数进行解析
let num2=parseFloat("0xA");//0
let num3=parseFloat("22.34.5");//22.34
String类型
转化为字符串
let age=11;
let ageAsString=age.toString();//字符串”11“
let found=true;
let foundAsString=found.toString();//字符串"true"
字符串也有toString方法,但是该方法只是简单的返回自身的一个副本,null和undefined值没有toString方法
通常情况下,toString方法是不需要传递参数的,但是,可以通过传入参数得到数值的二进制,八进制,十六进制等
let num=10;
console.log(num.toString(2));//"1010"
console.log(num.toString());
console.log(num.toString(8));//"12"
console.log(num.toString(10));//"10"
console.log(num.toString(16));//"a"
Object类型
let o=new Object();//创建无参对象
let o=new Object;//合法,但是不推荐