javascript之数据类型转换

数据类型转换

在程序的运行过程中变量的值是很容易发生改变的,而在值进行变化的时候它的数据类型也很容易发生改变,我们把这种数据类型的变化叫做:数据类型转换。

typeof 判断数据类型

		console.log(typeof "aaa"); //string
        console.log(typeof 123); //number
        console.log(typeof true); //boolean

typeof运算符的简单使用就是直接加在想要判断的变量前边,但是这里有两个类型需要注意

		console.log(typeof a); // 因为没有赋值,所以它是undefined

        var b=null
     	console.log(typeof b); // b的类型是object 

强制转换

在设计程序的时候对于收集来的数据希望是指定的类型但是又不能完全确定得到的结果就是想要的,所以我们一般都会进行强制数据类型转换。

  • 转换为:string
    String() 强制转换为字符串
 // String()函数可以将任何数据转换为string类型
    String(10);// '10'
    String(NaN);// 'NaN'
    String(null);// 'null'
    String(undefined);// 'undefined'
    String(true);// 'true'

toString()
toString()函数可以将除了null/undefined之外的任何数据转换为string类型

	var num = 10;
    num.toString();// '10'
    var flag = true;
    flag.toString();// 'true'
  • 转换为:number
    将得到的数据转换为number类型我们需要以下三个方法:
  1. Number()

如果内容可以转换成数字,则返回对应的数字(整数或小数)
如果内容不可以转换成数字,则返回NaN
如果内容为空,则返回0

    Number('10');// 10
    Number('10.12');// 10.12
    Number('10abc');// NaN
    Number('abc102');// NaN
    Number('hello');// NaN
    Number(true);// 1
    Number(false);// 0
    Number();// 0
    Number('');// 0
  1. parseInt()
    将内容转换成整数(直接去掉小数)
    parseInt('10');// 10
    parseInt('10.12');// 10
    parseInt('10abc');// 10
    parseInt('abc102');// NaN
    parseInt('hello');// NaN
    parseInt(true);// NaN
    parseInt(false);// NaN
    parseInt();// NaN
    parseInt('');// NaN

  1. parseFloat() 将内容转换成小数
    parseFloat('10');// 10
    parseFloat('10.12');// 10.12
    parseFloat('10abc');// 10
    parseFloat('abc102');// NaN
    parseFloat('hello');// NaN
    parseFloat(true);// NaN
    parseFloat(false);// NaN
    parseFloat();// NaN
    parseFloat('');// NaN
  • 转换为:boolean
    Boolean()

    false、0、NaN、Undefined、null会被转换成false
    “”空字符串会被转换成false
    其它的都会被转成true(任何非空字符串都会被转换为true)

	Boolean(0);// false
    Boolean(NaN);// false
    Boolean(undefined);// false
    Boolean(null);// false
    Boolean('');// false
    Boolean('das');// true
    Boolean(1);// true
    Boolean(' ');// true
    Boolean('0');// true

注意:Boolean值在内存中true为1,false为0

隐式转换

数据类型转换分为隐式类型转换和显式类型转换(强制转换)
隐式类型是程序内部自动完成的。
当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换。
隐式转换遵从与 String() Number() Boolean()

转换为:string
任何数据是字符串相加都是字符串的拼接操作,得到的结果也都是字符串。

    10+'hello';// '10hello'
    ''+100;// '100'
    NaN+'haha';// NaNhaha

转换为:number
对数字类型的自动转换我们可以使用:
直接在要转换的内容前加上”+”;
可以使用-、*、/、%、>、<等将字符串转换成number

    +'10';// 10
    +'hello';// NaN
    +'';// 0
    +' ';// 0
    +true;// 1

    10-'5';// 5
    10*'3';// 30
    10/'2';// 5
    10>'3';// true
    9>'19';// false

转换为:boolean

    !12;// false
    !1;// false
    !'hello';// false
    !!'hello';// true
    !!123;// true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值