JavaScript中的数据类型补充点

一共有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;//合法,但是不推荐

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值