美文网首页
数据类型及数据类型转换(一、二)

数据类型及数据类型转换(一、二)

作者: 锋享前端 | 来源:发表于2018-09-14 10:22 被阅读0次

    一、数据类型

    JavaScript的数据类型共分两类:简单数据类型 (也称原始数据类型或基本数据类型)和复杂数据类型(也称引用数据类型或对象类型)。

    2.1 简单数据类型

    简单数据类型共分5种:Number、Boolean、String、Null、Undefined (ECMAScript6新增:Symbol)

    数据类型 数据值 说明
    Undefined undefined 当声明一个变量但是并没有赋值时,变量的类型是Undefine类型
    Null null 对象指针为空
    Boolean true false true\false两个值都必须小写
    Number 10 3.14 3. .5 整数与浮点数 NaN ---- not a number本应该返回数值型数据的函数,如果返回的值不是数值型测返回NaN isNaN()---不是数字返回true 是数字返回false
    String “Hello” ‘Hello’ “a” ’a’ 后续学习
    Object 对象 后续学习

    2.1.1 Number类型

    数值类型共分4种值:整数、浮点数、无穷大、NaN
    对数值来说,最常见的数值字面量是10进制。比如:20, 30, 5.5 这些值都是用10进制表示的。

    1. 整数: 对整数来说,我们一般使用的是10进制,其实还有8、16进制等。例如:
    var num = 25;  // 10进制的25
    alert(num); //弹出:25
    
    1. 浮点数: ** 所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。浮点数直接量一般有两种写法:直接带小数点的使用科学计数法。**
    var f1 = 3.14;   // 带小数点的直接量写法
    var f2 = 3.158899e5; //科学计数法:  表示 3.158899 * 10^5
    
    1. **无穷大(Infinity): ** ECMAScript并不能储存所有的数,所以能表示的数有个范围。所能表示的数最大值和最小值都保存在Number这个内置对象中(后面会详细介绍什么是对象。)
    alert(Number.MAX_VALUE);
    alert(Number.MIN_VALUE);
    //如果数值超出了最大值和最小值,则用Infinity和-Infinity表示。
    alert(1.1 / 0); //弹出:Infinity
    alert(-1.1 / 0);    //弹出:-Infinity
    
    1. **NaN( not a number 不是个数): ** 表示不是一个数字,当0/0 的时候不是无穷大,而是NaN。或者把一个非数字形式的字符串转换成数字时都会返回NaN。例如:
    alert(0 / 0);  //弹出:NaN
    alert(parseInt("60"));  //弹出:60 说明:parseInt("");可以把字符串形式的数字转换成Number
    alert(parseInt("a"));   //弹出:NaN
    
    //注意:NaN是个非常特别的东东。因为即使他自己和自己都不相等。
    var v = 0 / 0;
    alert(v == v);  //弹出false
    alert(v != v);  //弹出true。  所以:可以通过这种方式来判断这个数是否为NaN
    
    /*
      另外:isNaN()函数如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,
      则 返回 false。
    */
    alert(isNaN(3));//返回false
    alert(isNaN("3"));   //返回false
    alert(isNaN("blue"));//返回true
    alert(isNaN(true));//返回false . true可以转换成数字1
    alert(isNaN(null));//返回false    null可以转换为数字0
    alert(isNaN(undefined));//返回true    
    

    2.1.2 Boolean类型

    Boolean类型的值是程序中用的很多的一种类型。它只有两个值:true和false。true表示逻辑上的对/正确,false表示逻辑上的

    2.1.3 String类型

    String指的是用 ""(双引号)''(单引号) 括起来的字符序列。字符序列可以由0个或多个字符组成。
    例如:”123” “a” ‘name’ ‘blue’ ’nihao’ ’xiaohong‘ ”nihao”。

    说明:

    1、单引号或双引号要匹配,不能一边用双引号,一边用单引号 ,左右符号要匹配。

    2、JavaScript统一每个字符使用Unitcode码来进行编码,每个字符占16位(2个字节)。

    3. 在其他语言中多用单引号表示一个字符,双引号表示字节。但是对JavaScript来说,不存在字符类型的数据。

    4. 有些字符不可见或有特殊意义,比如换行符,制表符, 双引号等,则 JavaScript 提供了相应的转意字符,来表示这些不可见字符。见下表:

    代码 输出
    ' 单引号
    " 双引号
    & 和号
    \\ 反斜杠
    \n 换行符
    \r 回车符
    \t 制表符
    \b 退格符
    \f 换页符

    2.1.4 Undefined

    Undefined 类型只有一个值,即特殊的 undefined 。在使用 var 声明变量但未对其加以初始化时,
    这个变量的值就是 undefined ,例如:

    var v;
    alert(v); //弹出:undefined。  变量v声明但是没有赋值初始化,则为undefined
    alert(m);  //m没有定义,直接使用会发生错误。
    

    2.1.5 Null

    1. Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null ( n是小写)。从逻辑角度来看, null 值表

    示一个空对象指针。

    1. 值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

    说明:

    尽管这两个值相等,但它们的含义不同。
    undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。
    如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。

    alert(null == undefined); // 弹出: true。  待讲完面向对象在来理解会更加清晰。大家目前只需要了解即可。
    

    2.2 复杂数据类型

    复杂数据类型又称之为引用数据类型。主要包括三种:对象(object)、函数(function)和数组(array)

    不过,从本质来看,这三种都属于对象。

    关于复杂数据类型,我们在面向对象部分重点详细介绍。

    二、数据类型转换

    数据类型转换有两种转换:自动转换和强制转换。

    1. 自动类型转换:

    在解释执行的过程中,会根据需要进行相应的自动类型转换。比如:需要一个Boolean类型的值,而现在是一个字符串,则会根据相应的规则把字符串自动转换为Boolean值。

    1、转换成布尔类型
    undefined —> false
    null —> false
    数值       0,0.0,NaN —> false   其他数值—> true
    字符串    ""—>false    "etef" —> true
    其他对象—> true
    总结:存在的东东,转换成true, 不存在的东东转换成flase
    
    2、转换成数值类型
    undefined —> NaN
    null —> 0
    字符串——>数值—>     "34234"—>34234,  "324sdfs3423" —> NaN,  "" —> 0
    布尔类型——>数值    true->1   false->0
    总结:能转成数字的就转成对应的数字。不能转成数字的要么0或1要么NaN
    
    3、转换成字符串类型
    undefined —>"undefined"
    null —>"null"
    布尔类型     true —>”true”     false —>"false"
    数值类型转成字符串    12321 —>"12321"   NaN —>"NaN"
    总结:字面值是什么就转成什么
    

    2. 强制类型转换。

    //1、其他类型转成成字符串。
    var a = 10;
    alert(a + "");  // 直接和一个长度为0的空字符链接
    alert(a.toString()); //调用这个变量的toString()方法
    alert(String(a));  //使用String转型函数
    //2、字符串转数字。
    var s = "123";
    alert(parseInt(s));
    alert(parseFloat(s));
    /*
        注意:使用parseXxx转换
        1、转换为数字的时候,会忽略前面的空格
        2、如果是数字开头然后是字母,则会只转前面的数字
        3、如果是字母开头则返回NaN
        4、在使用parseInt的时候,可以传入第二个参数,表示这个数的进制,然后就转换成对应的10进制数返回。
    */
    alert(parseInt("  12"));  //忽略前面的空白字符
    alert(parseInt("12ab3");  //弹出:12.  从字母后面的统统忽略掉
    alert(parseInt("a123"));  // 弹出:NaN
    alert(parseFloat("-41.33b89")) // -41.33
    //3、使用转型函数互转(暂时先了解)  var为一个变量或常量都可以
    String(var);//其他类型转字符串
    Number(var);  //其他类型转数字
    Boolean(var);  // 其他类型转布尔
    

    相关文章

      网友评论

          本文标题:数据类型及数据类型转换(一、二)

          本文链接:https://www.haomeiwen.com/subject/xtnngftx.html