JavaScript数据类型转换实例(其他类型转字符串、数值型、布尔类型)
前言
什么是数据类型转换?
使用表单、prompt 获取过来的数据默认类型是字符串类型的,此时就不能直接进行加减法运算,而需要转换变量的数据类型。
通俗来说,数据类型转换就是将一种数据类型转换成另外一种数据类型。
在平常代码的使用中,我们偶尔会遇到需要进行数据类型转换的时候,比如将数值型转换为字符串,或者将null/undefined转换为布尔类型等等,这篇文章我们主要讲以下三种类型的转换:
- 其他类型转为字符串
- 其他类型转为数值型
- 其他类型转为布尔类型
其他类型转为字符串:
有三种方法
//第一种方法
var a=5;//数值类型转为字符串
var b=a.toString();
console.log(b);//console可以在浏览器中打印出输出的信息
console.log(typeof b);//typeof可以显示当前文本的类型
//第二种方法
var a=5;
console.log(String(a));//直接打印出转换为字符串类型的内容
//第三种方法
var a=5;
var b=''+a;
console.log(b);
//这种方法利用了在JS中如果有加号,那么从遇到的第一个字符串类型开始,后面的全变为字符串类型
如果是布尔类型转换为字符串类型的话
var a=true;
console.log(String(a));//在上述三种类型中任选一种用即可
这样转换后的结果还是true
但是如果我们用
console.log(typeof String(a));
验证后,就会发现虽然显示还是true,但类型已经转换为字符串类型。
其他类型转为数值型
同样也有三种方法
//第一种方法
var a='1';
var b=Number(a);
console.log(b);//内容为数值的字符型转数值,最终显示结果就为原数值
var c=Number('c');
var d=Number(null);//在这里null可以转换为0
var e=Number(undefined);
console.log(c,d,e);
//输出结果为NaN 0 NaN
//NaN表示not a number
注:如果是字符串类型转数值类型,那么串内的内容必须要是数字,如果不是则会显示NaN。
//第二种方法
//int表示整型数值
var a=parseInt('5');
var b=parseInt('q12');
var c=parseInt(null);
var d=parseInt(undefined);
console.log(a,b,c,d);
//输出结果为5 NaN NaN NaN
可以看到,第二种方法的null没有转换为0,而是NaN。
//第三种方法
//float表示浮点型数值
var a=parseFloat('2.56qwe');
var b=parseFloat('2.4.6.8');
var c=parseFloat('q12');
var d=parseFloat(null);
var e=parseFloat(undefined);
console.log(a,b,c,d,e);
//输出结果为2.56 2.4 NaN NaN NaN
当转换类型为浮点型数值时
会默认输出第一个小数点前的数字以及第一个小数点后的所有有效数字,如遇到字符或者第二个小数点停止。
其他类型转为布尔类型
只有一种方法
var a=Boolean('0');
var b=Boolean(0);
var c=Boolean('5');
var d=Boolean(null);
var e=Boolean(undefined);
var f=Boolean('');//字符串内容为空
var g=Boolean(' ');//字符串内容为空格
console.log(a,b,c,d,e,f,g);
//输出结果为true false true false false false true
注意:如果是字符串转换为布尔类型,那么只要字符串中有内容(内容为空格也算有内容),转换结果就为true,如果字符串内容为空,则为false。
总结
到此这篇关于JavaScript数据类型转换的文章就介绍到这了,更多相关JavaScript数据类型转换内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341