关于JS的数据类型与转化(自动与强制)

Posted 皓月长歌~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JS的数据类型与转化(自动与强制)相关的知识,希望对你有一定的参考价值。

  在我们谈到JS的数据类型转化时,一定会知道分为自动转化强制转化两种方式吧,通俗来讲,自动就是在某种条件下,电脑浏览器自己会把其他类型的数据转化为相应的数据类型,而强制则是咋们程序员应该手动来做的了,通过代码来在任何条件下都可以实现数据类型的转化。有不妥的地方欢迎大家指正哈。

  咋们进入正题,第一步嘛,肯定是需要知道JS的数据类型到底是有哪一些,有哪些分类(基础数据类型,复杂的下次再谈哈):

  1.布尔类型(Boolean),也是咋们经常常用的一种数据类型,它的值只有true/false,这两个数值,另外需要注意的则是,这两个值写的时候一定要小写

    例子:var p1 = 4 > 3; 这个p的数据类型则是true,反之则数据类型相反

  2.字符串类型(String/Str),当然他的数值也有相应的识别方法和书写规范,字符串当中的数值是需要用双引号" ",或者单引号‘ ‘,来包裹起来的。

    例子:var p2 = ‘上海 ‘,那么这个p2数据类型则是字符串类

  3.undefined和null

    undefined 表示没有数值 --- 应该有数值,但是现在没有数值

    null      表示数值为空 --- 表示有数值,但是数值是"空"

  4.数值类型(整数,小数/浮点数,NaN),数值类型则相应多一点,但是也是好理解的,咋们一个一个来看

    整数:integer / int    

      在计算机程序中,常用的整数类型有  

 

               二进制 : 0 , 1

 

                八进制 : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7

 

               十进制 : 0 - 9

 

               十六进制 : 0 - 9 a - f
       这里进制之间的转化时题外话,我就不多说了,最简单的方式了,咋们可以用电脑自带的计算机转到程序员模式,很快就能计算出来。
 
    小数/浮点数:在javascript中,对于浮点数的总位数有规定一个浮点数,有效数字/有效数值,最多 17 位,所谓的有效数字,值得是,左起,非零的数值。
      其中还分为有科学计数法,他的写法表达式为2e3,或者2e-3,他们相对应的数值是2000,和0.002。还有最重要的一点就是浮点数是有误差的,也                     就是精度溢出/精度丢失,因为在计算机程序中,浮点数的存储,存储内容,不是准确值,而是近似值  ,举例来看:console.log( 0.1 + 0.2 == 0.3 ),这个                     ==两边是否相等了?答案肯定是否定的,原因如下:浮点数因为存储方式的问题,直接执行运算或者比较,会造成精度溢出或者精度丢失的现象,造                        成执行的误差,我会将浮点数,转化为 高精度浮点数 , 在进行运算,会避免这样的问题发生
 
    NaN:则是不规范的数值,像123ab,这种则是NaN。
 
  接下来咋们来看他们之间的转化是如何转化的。
  
  1.其它数据类型转化为布尔数据类型
    1-1:自动转化,只有在执行if判断的时候,程序会自动把其它数据类型转化为布尔数据类型,转化原则是:0," ",undefined,null,NaN,只有这五                         个数值转化为false,其他所有的全是转化为true。
    1-2:强制转化,就是把相应变量或者数值前加上Boolean(数值/变量),即可转化为为布尔类型,转化原则了,也自动转化是一样的。
 
  2.其它数据类型转化为字符串数据类型
    2-1:自动转化,只有在执行字符串拼接的时候,+两侧的数值会自动转化为字符串,转化原则是:布尔值 true  ---> 字符串 ‘true‘,布尔值 false ---> 字                         符串 ‘false‘,undefined ---> 字符串 ‘undefined‘,unll ---> 字符串 ‘null‘,数值 ---> 将数值解析转化为 对应的 纯数字的字符串
      2-2:强制转化,就是把相应变量或者数值前加上String(数值/变量),即可转化为为字符串类型,转化原则了,也自动转化是一样的。
 
  3.其它数据类型转化为数值类数据类型
    3-1:自动转化,只有在执行数学运算的时候,程序会自动转化,转化原则为,布尔类型:true-->1,false-->0;null-->0;undefined-->0;字符串的                             话,分为两种,一是纯数值类型的直接转化为数值,而是不符合数字规范的则转化为NaN,
    3-2:强制转化,第一种就是把相应变量或者数值前加上Numble(数值/变量),即可转化为为字符串类型,转化原则与自动转化原则相同
            第二种是把相应变量或者数值前加上parseInt(数值/变量),是获取变量或者数据的整数部分
            第三种则是把相应变量或者数值前加上parseFloat(数值/变量),是获取整数,浮点数,全部都获取
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

以上是关于关于JS的数据类型与转化(自动与强制)的主要内容,如果未能解决你的问题,请参考以下文章

java中的运算符与类型转换

02.强制类型转化

类型转换与键盘输入

关于JS堆栈与拷贝

关于JS堆栈与拷贝

Java数据类型的转换:隐式(自动)转换与强制转换