1.将其他类型转化为String
方式一:调用被转换数据类型的toString()方法 调用xxx的yyy方法,就是xxx.yyy()
该方法不会影响到原变量,它会将转换的结果返回
但是注意:null和undefined这两个值没有toString()方法,
如果调用他们的方法会报错
var a = 123; a=a.toString();
方式二:调用String()函数,并将被转换的数据作为参数传递给函数 调用xxx函数,就是xxx()
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法,
它会将null直接转换为“null”,将undefined直接转换为"undefined"
var a = 123; a=String(a);
方式三(隐式的类型转换): *****
- 为任意的数据类型 +""
- 例子:
var a = true;
a = a + "";
- 原理:和String()函数一样
2.将其他类型转化为Number
方式一:使用Number()函数
字符串--->数字
纯数字字符串,直接转数字,否则NaN,如字符串是空串或者空格,转为0
布尔--->数字 true为1,false为0
Null---数字 0 undefined--->数字 NaN
方式二:专门对付字符串
parseInt()把一个字符串转换一个整数 取有效整数
parseFloat()把一个字符串转换成一个浮点数 取有效小数
如果对非String使用parseInt()或parseFloat()
它会先将其转化成为String然后再操作
a=true;a=parseInt(a); typeof--->NaN
方式三(隐式的类型转换):
- 使用一元的+来进行隐式的类型转换
- 例子:
var a = "123";
a = +a;
- 原理:和Number()函数一样
3.其他进制数字
在js中,如果表示16进制的数字,则需要以0x开头
如果需要表示8进制的数字,则需要以0开头
如果需要表示2进制的数字,则需要以0b开头,但是不是所有浏览器都支持
向“070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析,
可以在parseInt()中传递第二个参数,来指定数字的进制
a="070";a=parseInt(a,10)
4.将其他类型转化为Boolean
方式一(强制类型转换):
- 使用Boolean()函数
- 例子:
var s = "false";
s = Boolean(s); //true
- 转换的情况
字符串 --> 布尔
- 除了空串其余全是true
数值 --> 布尔
- 除了0和NaN其余的全是true
null、undefined ---> 布尔
- 都是false
对象 ---> 布尔
- 都是true
- 方式二(隐式类型转换):
- 为任意的数据类型做两次非运算,即可将其转换为布尔值
- 例子:
var a = "hello";
a = !!a; //true
JS类型转化
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。