数据类型的转化

	今天来分享以下关于数据类型的转化,数据类型转化分为自动转化和强制转化。自动转化是指计算机程序自动完成的转化,需要某些条件触发;而强制转化是指程序执行者通过某些举措强制完成的转化。
	数据类型转化一般包括其他数据类型到布尔型的转化、其他数据类型到数值型的转化、其他数据类型到字符串类型的转化。

在下面举例说明各类型转化的方式:
1.其他数据类型到布尔型的转化:
(1)自动转化:当执行if条件判断时,会完成其他数据类型到布尔型的转化。
转化为false的有5种情况,分别是:0 、“”(空值)、null 、undefined、 NaN
转化为true:除去上述5种情况的值都会转化为true
(2)强制转化:通过Boolean(变量/数据),转化的原则同自动转化一样
例:Boolean(undefined); -------false
Boolean(null); --------false
Boolean(1); --------true

2.其他数据类型到数值类型的转化:
(1)自动转化:通过执行数学运算的方式
布尔型: true-----1 false-------0
例:console.log(100 - true); -------99
console.log(100 - false); ---------100
字符串: ”123”–123 2e3------2000“a123”—NaN(不能被解析成整数或者浮点数的都为NaN)
例:console.log(100 - ”12”) ---------88
注:当运算符是+,且有字符串参与运算时,会执行字符串拼接操作
(2)强制转化:转化原则同自动转化一样
方法1:通过Number(变量/数值)
例:console.log(Number(true)); -------1
console.log(Number(“100”)); ------100
console.log(Number(“北京”)) -------NaN
方法2:通过parseInt(变量/数据)从左到右获取整数部分,只要遇到不是整数部分的,就不会再 看之后的数据
例:console.log(parseInt(true)); ----------NaN
console.log(parseInt(undefined)) ----------NaN
console.log(parseInt(null)); -----------NaN
console.log(parseInt(100)); -----------100
console.log(parseInt(0.123)); -----------0
console.log(parseInt(3e3)); -----------3000(会解析)
console.log(parseInt([1,2,3])); -----------1
console.log(parseInt({name:“张三”})); -----------NaN
console.log(parseInt(function fun(){})); -----------NaN
如果是字符串类型
console.log(parseInt(“100”)); -----------100
console.log(parseInt(3.123e3)); -----------3(不解析)
方法3:通过parseFloat(变量/数据),从左到右获取浮点数部分(整数+小数)
例: console.log(parseFloat(true)); ----------NaN
console.log(parseFloat(undefined)) ----------NaN
console.log(parseFloat(null)); -----------NaN
console.log(parseFloat(100)); -----------100
console.log(parseFloat(0.123)); -----------0.123
console.log(parseFloat(3e3)); -----------3000(会解析)
console.log(parseFloat([1,2,3])); -----------1
console.log(parseFloat({name:“张三”})); -----------NaN
console.log(parseFloat(function fun(){})); -----------NaN
如果是字符串类型
console.log(parseFloat(“100”)); -----------100
console.log(parseFloat(3.123e3)); -----------312.3

3.其他数据类型到字符串类型的转化:
(1)自动转化:执行字符串拼接时
true -------”true” false--------”false” 123------”123” null------”null”
undefined------”undefined”
例:console.log(“北京”+ true); -------”北京true”
console.log(“北京”+ false); -------”北京false”
console.log(“北京”+ undefined); -------”北京undefined”
console.log(“北京”+ 123); -------”北京123”
console.log(“北京”+ null); -------”北京null”
数组:会只保留方括号里的内容
console.log(“北京”+ [1,2,3]); -------”北京1,2,3”
对象:会出现[object Object]
console.log(“北京”+ {name:“张三”); -------”北京[object Object]”
函数:会将全部内容转化为字符串形式
console.log(“北京”+ function fun(){xxx}); —”北京function fun(){xxx}”

(2)强制转化:
方法1:通过变量.toString(进制)
var i = 100;
console.log(i.toString(2)); ------- ”01100100”
方法2:通过String(变量/数据) 不改变变量的原始数值
console.log(String(100)); -------“100”
console.log(String(null)); -------“null”
console.log(String(undefined)); -------“undefined”
console.log(String(true)); -------“true”
console.log(String(false)); -------“false”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值