全面了解JavaScript的数据类型转换

 更新时间:2016年07月01日 09:34:01   投稿:jingxian  
下面小编就为大家带来一篇全面了解JavaScript的数据类型转换。小编觉得挺不错的,现在就分享给大家看,也给大家做个参考。一起跟随小编过来看看吧

 首先,由于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的数据类型转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 传智播客学习之JavaScript基础篇

    传智播客学习之JavaScript基础篇

    前几天学习了JavaScript,但是一直由于忙碌的原因,没有来得及进行总结,今天终于有时间进行一个全面总结了,希望给正在努力学习的朋友们一点小小帮助。
    2009-11-11
  • 详解JS数值Number类型

    详解JS数值Number类型

    本篇文章主要给大家详细分析了JavaScript数值Number类型的相关知识点,对此有兴趣的朋友跟着小编一起学习下。
    2018-02-02
  • 详解JavaScript 为什么要有 Symbol 类型?

    详解JavaScript 为什么要有 Symbol 类型?

    这篇文章主要介绍了JavaScript 为什么要有 Symbol 类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • js中slice()方法的使用说明

    js中slice()方法的使用说明

    js中slice()方法的使用说明...
    2007-03-03
  • js数组方法扩展实现数组统计函数

    js数组方法扩展实现数组统计函数

    这篇文章主要介绍了js数组方法扩展,实现数组统计函数,需要的朋友可以参考下
    2014-04-04
  • 浅谈javascript中new操作符的原理

    浅谈javascript中new操作符的原理

    下面小编就为大家带来一篇浅谈javascript中new操作符的原理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • java中String类型变量的赋值问题介绍

    java中String类型变量的赋值问题介绍

    下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。
    2016-03-03
  • Javascript中的迭代、归并方法详解

    Javascript中的迭代、归并方法详解

    下面小编就为大家带来一篇Javascript中的迭代、归并方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • js学习之----深入理解闭包

    js学习之----深入理解闭包

    本篇文章主要介绍了js的闭包,闭包算是js里面比较不容易理解的点,现在整理出来分享给大家,有需要的可以了解一下。
    2016-11-11
  • js获取浏览器基本信息大全

    js获取浏览器基本信息大全

    本文整理汇总了js获取浏览器基本信息资料,非常的全面,也对IE及非IE浏览器之间的区别进行了分析,是篇非常不错的文章,这里推荐给大家,前端设计师们千万不要错过
    2014-11-11

最新评论