js基本数据类型之间的转换
Posted 钊梦林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js基本数据类型之间的转换相关的知识,希望对你有一定的参考价值。
常见五大基本数据类型
1.number
2.string
3.boolean
4.undefined
5.null
一.转换为string
①调用toString() 方法
因为null和undefined没有toString()方法,所以,不能通过这样的方式进行转换。
//number类型转换成String
var a = 123;
var b = a.toString();
console.log(typeof b + " " + b); //string 123
//Boolean类型转换成String
a = true;
b = a.toString();
console.log(typeof b + " " + b); //string true
②通过String()函数
//undefined类型转换成String
var a;
var b = String(a);
console.log(typeof b + " " + b); //string undefined
//null类型转换成String
a = null;
b = String(a);
console.log(typeof b + " " + b); //string null
//number类型转换成String
a = 123;
b = String(a);
console.log(typeof b + " " + b); //string 123
//Boolean类型转换成String
a = true;
b = a.toString();
console.log(typeof b + " " + b); //string true
③加一个空字符串( + “ ” )
//undefined类型转换成String
var a;
var b = a + "";
console.log(typeof b + " " + b); //string undefined
//null类型转换成String
a = null;
b = a + "";
console.log(typeof b + " " + b); //string null
//number类型转换成String
a = 123;
b = a + "";
console.log(typeof b + " " + b); //string 123
//Boolean类型转换成String
a = true;
b = a + "";
console.log(typeof b + " " + b); //string true
二.转换成number类型
①使用Number()函数
//字符串转数字
//纯数字字符串,直接转
var a = "123";
var b = Number(a);
console.log(typeof b + " " + b); //number 123
//含有非数字字符,转换为NaN
a = "123x";
b = Number(a);
console.log(typeof b + " " + b); //number NaN
//布尔值转数字 true转为1,false转为0
var a = true;
var b = Number(a);
console.log(typeof b + " " + b); //number 1
a = false;
b = Number(a);
console.log(typeof b + " " + b); //number 0
//null转为0
var a = null;
var b = Number(a);
console.log(typeof b + " " + b); //number 0
//undefined转换为NaN
var a;
var b = Number(a);
console.log(typeof b + " " + b); //number NaN
②使用parseInt() 或 parseFloat() 函数
和Number()的不同
-
对于非字符串类型,先转换为字符串
-
从左向右遍历字符串,直到碰到非数字字符进行“截断”;如果第一个字符就是非数字字符,转换为NaN
parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。
parseInt("1234blue");//return 1234
parseInt("22.5");// return 22 对于整数来说,小数点是无效字符
parseInt("blue");//return NaN
//parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的。
//例如:
parseInt("AF",16); //return 175 十六进制
parseInt("10",2);//return 2 二进制
parseInt("10",8);//return 8 八进制
parseInt("10",10);//return 10 十进制
//如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。
//例如:
parseInt("010");//return 8
parseInt("010",8);//return 8
parseInt("010",10);//return 10
parseFloat(),从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字。
不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不能用八进制形式或十六进制形式。
parseFloat("1234blue");//return 1234
parseFloat("22.34.5");//return 22.34
parseFloat("0908");//return 908
parseFloat("blue");//return NaN
③通过一元运算符 + (正号)
//undefined转number
var a;
var b = +a;
console.log(typeof b + " " + b); //number NaN
//null转number
a = null;
b = +a;
console.log(typeof b + " " + b); //number 0
//boolean转number
a = true;
b = +a;
console.log(typeof b + " " + b); //number 1
//string转number
a = "123";
b = +a;
console.log(typeof b + " " + b); //number 123
//string转number
a = "123A";
b = +a;
console.log(typeof b + " " + b); //number NaN
三.转换为Boolean
①通过Boolean()函数
共五种情况为false的情况,其他均为true
Boolean(0) //转换为false
Boolean(NaN) //转换为false
Boolean("")(空串) //转换为false
Boolan(null) //转换为false
Boolean(undefined) //转换为false
②两次取反!!
与使用Boolean()结果一致
以上是关于js基本数据类型之间的转换的主要内容,如果未能解决你的问题,请参考以下文章
JS的数据类型判断函数数组对象结构处理日期转换函数,浏览器类型判断函数合集