JS 里的数据类型转换
- 某类型转换为字符串的方法
eg.var a=4
- 用 变量.toString()方法,
a.toString()
注意括号
- 用 String(变量)方法,
String(a)
- 用该类型+空字符串,
a+''
还有null+''
, undefined+''
注:浏览器调用console.log()
和alert()
类似命令时,会自动先将内容转换为string再打印
- 某类型转换为Boolean的方法
- 用Boolean(内容),
Boolean(a)
- 用连续2次的取反
!!a
- 类型里要记住的5个false值:
0,NaN,'',null,undefined
.
注1:所有的对象obj都是true
注2:当把类型用于条件判断时,js会先自动将其转换为Boolean值,再判断.
- 某类型转换为Number的方法
eg. var b='5';var c='3b'
- 用Number('内容'),
Number(b)//输出5
,Number(b)//输出NaN
- 用parseInt('内容',进制),
parseInt(c)//输出3,遇到字母停止,默认10进制,用于整数
- 用parseFloat('内容'),
parseFloat('5.33')//输出5.33,用于浮点数
- 用该类型-0,
b-0//输出5,不能用+0,+0会变为字符串'50'
- 用该类型前加+号,
+'-1'//输出-1
- 对象的字符串化
eg.var d={a:0}
用1的三种方法,以及alert,console.log都是"[object Object]"
- base64编码
- 用于简单加密解密的方法
-
var e=btoa(a)//加密
,atob(e)//解密
- 非ascii码不能直接用于base64编码需要先转换为ascii码再做加解密,再转换为非ascii码
var f='帅'
var g=encodeURIComponent(f)//将汉字转换为ascii码"%E5%B8%85"
var h=btoa(g)//将ascii码转换为base64"JUU1JUI4JTg1"
var i=atob(h)//将base64解码为ascii码"%E5%B8%85"
var j=decodeURIComponent(i)//将ascii码转换为汉字''帅''