不足之处欢迎补充!!!
一、前言
之前对于数据类型之间的转换的掌握到了一定的程度,突然有一天想把转换的全部方法举例出来,就蒙了。因此,就有了这篇文章。
二、正文
1、转换成字符串(String)类型
这里的‘V’代指其他数据类型
- v+"" 拼接运算,任何加字符串的表达式都为字符串
Number类型转换成字符串类型
var a = 123;
console.log(a,typeof a);//123 'number'数字类型
var b = a+"";
console.log(b,typeof b);//'123' 'string' 字符串类型
注:这里打印出来的实际是没有单引号的,但是为了区分为字符串方才加上
Boolean类型转换成字符串类型
var c = true;
console.log(c,typeof c);//true 'boolean'
var d = c+"";
console.log(d,typeof d);//'true' 'string'
null类型转换成字符串类型
var e = null;
console.log(e,typeof e);//null 'object'
var f = e+"";
console.log(f,typeof f);//'null' 'string'
undefined类型转换成字符串类型
var g = null;
console.log(g,typeof g);//undefined 'undefined'
var h = g+"";
console.log(h,typeof h);//'undefined' 'string'
对象转换成字符串类型
var i = {};
console.log(i,typeof i);//{} 'object'
var j = i+"";
console.log(j,typeof j);//'[object Object]' 'string'
数组转换成字符串类型
var k = [1,4,5];
console.log(k,typeof k);//[1,4,5] 'object'
var l = k+"";
console.log(l,typeof l);//'1,4,5' 'string'
函数转换成字符串类型
var m = function(){};
console.log(m,typeof m);//[Function: m] 'function'
var n = m+"";
console.log(n,typeof n);//'function(){}' 'string'
- String(v)
var a = 234; //number类型
console.log(String(a));//'234'
var b = false; //boolean类型
console.log(String(b))//'false'
var c = null; //null类型
console.log(String(c))//'null'
var d = undefined; //undefined类型
console.log(String(d))//'undefined'
var e = {name:"larry"} //对象
console.log(String(e))//'[object Object]'
var f = [5,4,2] //数组
console.log(String(f))//'5,4,2'
var g = function(){var b = 3} //函数
console.log(String(g))//'function () {var b = 3}'
- v.toString() null与undefined除外
var a = 345;
console.log(a.toString())//'345'
var b = false;
console.log(b.toString())//'false'
var c = null
console.log(c.toString())//这里就会报错‘TypeError: Cannot read property 'toString' of null’
var d = {age:24}
console.log(d.toString())//'[object Object]'
var e = [3,5,6]
console.log(e.toString())//'3,5,6'
var f = function(){}
console.log(f.toString())//'function(){}'
prototype.toString.call() 可以用来判断变量是数组还是对象
var a = []
var b ={}
Object.prototype.toString.call(a)//'[object Array]'
Object.prototype.toString.call(b)//'[object Object]'
2、转换成数字(number)类型
- +v
var a = '123'
console.log(+a,typeof +a)//123 'number'
var b = '哈'
console.log(+b,typeof +b)//NAN 'number'
//这里的NAN意为不是一个数字
var c = true;
console.log(+c,typeof +c)//1 'number'
var d = false;
console.log(+d,typeof +d)//0 'number
var e = null
console.log(+e)//0
var f = undefined
cosole.log(+f)//NAN
var g = {age:13}
console.log(+g)//NAN
var h = [1,4,5]
console.log(+h)//NAN
var i = function(){}
console.log(+i)//NAN
- -(-v)
与上面一致,这里不做举例了 - Number(v)
与上面一致,这里不做举例了 - parseInt(v) 解析字符串为整数int
与上面的区别在于如果字符串类型转换成数字类型为浮点数时,自动化为整数,向下取舍
var a = '123.78'
console.log(parseInt(a))//123
var b = 'hah'
console.log(parseInt(b))//NAN
- parseFloat(v) 解析字符串为浮点数float
与 parseInt() 区别在于遇到字符串类型为浮点数时,保持浮点数,与 +v类似
var a = '123.345'
console.log(parseFloat(a))//123.345
console.log(+a)//123.345
3、转换成布尔(boolean)类型
- !!v
var a = 12;
console.log(!!a)//true
var a1 = -12;
console.log(!!a1)//true
var b = 0
console.log(!!b)//false
var b1 = NAN
console.log(!!b1)//false
var c = '布尔'
console.log(!!c)//true
var c1 = ''
console.log(!!c1)//false
var d = null
console.log(!!d)//false
var e = undefined
console.log(!!e)//false
- Boolean(v)
与上面类似,就不举例了
4、其他转换
- JSON.stringify(v) 将js对象转换为json字符串
区别在于属性名是否有双引号
//对象
var obj = {name:"terry",age:12,gender:"male"}
var json = JSON.stringify(obj)
console.log(json,typeof json);//'{"name":"terry","age":12,"gender":"male"}' 'string'
//字符串
var bb = 'name'
var jj = JSON.stringify(bb)//'"name"'
console.log(bb,jj);//name "name"
//数组
var a = ['la','te']
var ja = JSON.stringify(a)
cnosole.log(a,ja)//['la','te'] '["la","te"]'
- JSON.parse(v) 将json字符串转换js对象
var json = '{"name":"terry","age":12,"gender":"male"}'
var obj = JSON.parse(json)
console.log(obj,typeof obj)//{name:"terry",age:12,gender:"male"} 'object'
- v.join() 将数组转换成字符串
指定连接符
var a = [1,4,5]
a.join("*")//'1*4*5'