下面小编就为大家带来一篇全面了解 JavaScript 的数据类型转换。小编觉得挺不错的,现在就分享给大家看,也给大家做个参考。一起跟随小编过来看看吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
首先,由于 JavaScript 是弱类型语言 (弱类型的语言的东西没有明显的类型, 他能随着环境的不同, 自动变换类型而强类型则没这样的规定, 不同类型间的操作有严格定义, 只有相同类型的变量才能操作, 虽然系统也有一定的默认转换, 当绝没有弱类型那么随便,也就是说变量在声明时不需要指定数据类型,变量由赋值操作确定数据类型), 所以在 JavaScript 的类型转换中就存在了强类型语言所没有的隐式转换。
1.1 JavaScript 中的隐式转换(自动类型转换)
简单定义: 不同数据类型的数据在做运算的时候可以进行默认的数据类型的转换。
隐式转换通常遵循以下几点规则:
1. 数字 + 字符串:数字转换为字符串。
- var n1 = 12; //number类型
- var n2 = "12"; //string类型
- console.log(n1 + n2); //结果为string类型的"1212"
2. 数字 + 布尔值:true 转换为 1,false 转换为 0。
- var n1 = 12; //number类型
- var n2 = true; //布尔类型
- console.log(n1 + n2) //结果为13
3. 字符串 + 布尔值:布尔值转换为 true 或者 false。
- var n1 = "Hello"; //string类型
- var n2 = true;
- console.log(n1 + n2); //结果为string类型的"Hellotrue"
4. 布尔值 + 布尔值
- var n1 = true;
- var n2 = true;
- console.log(n1 + n2); //运行结果为2;
对于上面的案例得到的结果,不确信输出类型的小伙伴可以通过 typeof()方法来查看变量的当前类型。
- console.log(typeof(11)); //number
- console.log(typeof("11")); //string
- console.log(typeof(true)); //boolean
1.2 数据类型转换函数
JavaScript 中有隐式转换,相对应的就会有显式转换,想要进行显式转换就需要用到下面的几个函数:
1. toString()
----> 转换为字符串,在 JavaScript 中所有数据类型都可以转换为 string 类型
- var n1 = "12";
- var n2 = true;
- var n11 = toString(n1);
- var n22 = toString(n2);
- console.log(typeof(n11)); //得到的结果为string
- console.log(typeof(n22)); //得到的结果为string
2.parseInt()
----> 解析出一个 string 或者 number 类型的整数部分,如果没有可以转换的部分,则返回 NaN(not a number)
- var n1 = "12";
- var n2 = "12han";
- var n3 = "Hello";
- var n11 = parseInt(n1);
- var n22 = parseInt(n2);
- var n33 = parseInt(n3);
- console.log(n11); //得到的结果为12
- console.log(n22); //得到的结果为12
- console.log(n33); //得到的结果为NaN
运行上面的代码我们不难看出,变量 n1 n2 n3 转换后的数据类型都是 number,但是其中通过函数 parseInt() 得到的函数 n33 并不是我们认识的 number 类型数值,而是为 NAN, 这就不难看出 NaN 虽然不是一个数字,但是属于数字类型,只是不能应用到普通数字的任何算法,是一个比较特殊的存在。(后面的博文中会有提到,再次不做赘述)
3.parseFloat()
----> 解析出一个 string 的浮点数部分,如果没有可以转换的部分,则返回 NaN(not a number)。
- var n1 = "12.4.5";
- var n2 = "12.4han";
- var n3 = "Hello";
- var n11 = parseFloat(n1);
- var n22 = parseFloat(n2);
- var n33 = parseFloat(n3);
- console.log(n11); //得到的结果为12.4
- console.log(n22); //得到的结果为12.4
- console.log(n33); //得到的结果为NaN
通过上面的例子我们可以得出 parseFloat() 该函数的返回值确实是一个数字,但从几个变量的纵向比较中我们不难看出该函数在遇到第二个小数点之后就不做转换了,此处需特别注意。
以上这篇全面了解 JavaScript 的数据类型转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0305/264502.html