JavaScript中的数据类型转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript中的数据类型转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2199字,纯文字阅读大概需要4分钟。
内容图文
把其他数据类型转化为number类型
发生的情况:
(1)isNaN:调用Number方法
(2)parseInt、parseFloat、Number
(3)数学运算:+ - * / %
(4)基于“==”比较的时候,有时候也会把其他值转化为数字类型的值转化为数字类型
转换规律:
布尔类型的值
true: 1,
false: 0
null: 0,
undefined: NaN
字符串类型的值: 如果有非数字字符(会忽略空格),则返回NaN, 其中要考虑一些特殊字符,比如空格、换行符、制表符等
Number()
引用数据类型的值,需要先调用toString方法转化为字符串类型
其他数据类型转化为字符串
发生的情况:
1、基于alert、confirm、prompt、document.write
2、基于+进行字符串拼接的时候
3、把引用值转化为数字的时候,先转化为字符串
4、给对象设置属性名,如果不是字符串,则先转换为字符串
5、手动调用toString、toFixed、join、String的时候
转化规律:
浏览器默认转化,调用的都是toString方法
把其他数据类型转化为布尔值
发生的情况:
1、!、!!、Boolean
2、判断中的条件
转化规律:
null undefined 空字符串"" NaN 0转化后是false, 其他情况都是true
常见隐式数据类型转换
+
如果表达式中出现字符串,就是字符串拼接,否则就是数学运算
1+ true; // 2
'1'+true; // '1true'
[12] + '10'; // '1210' //虽然表面没有字符串,但是转换过程中会先转换为字符串,所以最终是字符串拼接
({}) + 10. // '[object Object]10'
{} + 10; // 10. 这和数据类型转换没有任何关系,这是代码块的含义
{} + {}; // '[object Object][object Object]'
10+ true + false + null +undefined + 'zhang' + 'null' + undefined + [] +'false;
// => NaNzhangnullundefinedfalse
==
相同数据类型比较就不在讲述
不同数据类型,会先转换为相同的数据类型才能比较:
对象 == 对象: 比较的是对象的地址,地址相同返回true,地址不同返回false
对象 == 数字: 先转换为数字
对象 == 字符串: 先转换为数字
对象 == 布尔: 先转换为数字
字符串 == 数字: 先转换为数字
字符串 == 布尔: 先转换为数字
布尔 == 数字: 先转换为数字
null == undefined: true
null === undefined: false
这两个值和其他所有值都不相等
NaN==NaN : false, NaN和谁都不相等, 包括自身
1 == true; // => true
2 == true; // => false; true先转化为1, 进行比价,结果为false
[]==[]; // => false
[] == false; // => true; 都转化为数字,都是0
[] == true; // => false
![] == false; // false; !先转化为布尔值,为true, 在判断true==false
![] == true; // true
![] == []; // true
rookieLink
发布了29 篇原创文章 · 获赞 21 · 访问量 8万+
私信
关注
内容总结
以上是互联网集市为您收集整理的JavaScript中的数据类型转换全部内容,希望文章能够帮你解决JavaScript中的数据类型转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。