美文网首页
JavaScript基本数据类型详解

JavaScript基本数据类型详解

作者: 周周很可爱 | 来源:发表于2019-09-27 02:41 被阅读0次

    在JavaScript中有5种简单的基本数据类型:
    String,Number,Boolean,Null,undefined。
    还有一种复杂的数据类型Object。

    今天我们来了解一下5种基本的数据类型

    1.Undefined -- 未定义类型

      Undefined类型只有一个值,即特殊的 undefined。
      在使用var声明变量,但未赋值(未初始化)时,这个变量的类型就是undefined,且其默认初始化值为undefined。
      对未声明,直接使与初始化的变量用,那么这个变量的类型也是undefined,但是没有默认初始化值。
    
      例如:
        var  a;
        console.log(a);//输出的结果就是undefined
        console.log(typeof a);// 类型也是"undefined"
    

    2.Null -- 空类型
    Null类型是第二个只有一个值的类型,这个特殊值是null。null值表示一个空对象指针。
    Null是特殊的对象类型:object

    javaScript高级程序上有讲到,undefined类型是派生自null的,可以说二者都是指没有明确赋值的类型。
    但是细分之后,undefined类型,被用来形容未经初始化的变量,null类型被用来形容空对象指针。
    
    而在javaScript权威指南中: null 和 undefined 都表示“值的空缺”,你可以认为undefined是表示系统级的、
    出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺。
    
    所以,如果定义的变量准备在将来用于保存对象(即复杂的数据类型object),那么就该将该变量初始化为null。
    
    当一个变量声明后,未初始化,则该值为undefined,如果这个值是为了保存对象,则修改其默认初始化的值,改为null。
    所以当检测其类型时,会显示类型为object。
    
        var  car = null;
        console.log(car);// 输出结果为null
        console.log(typeof car);// 检测类型为"object"    
    

    3.Boolean -- 布尔类型
    Boolean类型是ECMAScript中使用得最多的一种类型。
    Boolean类型只有两个值:true(真) \ false(假)。

    调用转型函数:Boolean() 可以将ECMAScript中所有类型的值都转换成相应的布尔值。

    例如:
        var str = "hello world";
        console.log(Boolean(str));//true
    

    各种数据类型转换布尔类型规则

      -------------------------------------------------------------------
      数据类型             转化为true的值             转化为false的值
      -------------------------------------------------------------------
      Boolean                true                        false
      String               任何非空字符串                "" (空字符串)
      Number               任何非零数值(包括无穷大)      0和NaN(非数值)
      Object               任何对象                      null
      Undefined               无                         undefined
    

    1、除0和NaN之外的所有数字,转换为布尔型都为true
    2、除"" 之外的所有字符,转换为布尔型都为true
    3、null和undefined转换为布尔型为false
    这些转换规则对理解流程控制语句,如(if)语句自动执行相应的转换非常重要。


    4.Number -- 数值类型
    Number 类型的表示方法有两种形式,第一种是整数,第二种为浮点数。
    整数就不用说了吧

    浮点数值(有些语言中被称为双精度数值) (就是这种// 4.522 //3.1415926之类的)
    1、该数值中必须包含一个小数点,且小数点后必须有一位数字,如果小数点后只有零,则该小数会被转化为整数。
    2、浮点数所占据的内存空间是整数的两倍。
    3、对极大极小的浮点数采用e表示法。
    var floatNum=3.2e7;//3.2×10(7次幂)
    var floatNum=3.2e-7;//3.2×10(-7次幂)

    注意:保存浮点数值所需的内存空间是保存整数值的2倍。
    浮点数值的最高精度是17位小数。特殊:0.1+0.2=0.30000000000000004

    范围:
    Number.MIN_VALUE: 5e-324
    Number.MAX_VALUE:1.7976931348623157e+308
    -Infinity(负无穷)、+Infinity(正无穷)
    3/0   +Infinity(正无穷)
    -3/0  -Infinity(负无穷)
    

    重点

    NaN:not a Number 不是一个数字  特殊的数值类型
    
    表示一个本来要返回数值的操作数未返回数值的情况。
    
    NaN特点:1.任何涉及NaN的操作都会返回NaN。
            2. NaN与任何值都不相等,包括NaN本身。  
             console.log(  NaN == NaN  ) //false
    
    isNaN(参数):判断参数是否"不是数值"。如果是数值返回false,不是数值返回true;
    
        console.log(isNaN(NaN)); //true
        console.log(isNaN(10)); //false(10是一个数值)
        console.log(isNaN("10")); //false(可以被转换成数值10)
        console.log(isNaN("hello")); //true(不能转换成数值)
        console.log(isNaN(true)); //false(可以被转换成数值1)
    
       *数值转换:有三个函数可以把非数值转换为数值:
        1.Number();//转型函数
        2.parseInt();//取整
        3.parseFloat(); //从第一位起取到小数部分(只识别第一个小数点),只解析10进制数。
    
        **Number():转型函数Number()可以用于任何数据类型
         语法:Number(变量名/变量);
     例:Number(true);  //1        
         Number(false);   //0
         Number(22);  //22        
         Number(null) ;//0
         Number(undefined); //NaN 
         Number("123"); //123   
         Number("2.11");  //2.11
         Number("");  //0     
         Number("11asdf");  //NaN 
    
       **parseInt()和parseFloat()这两个函数则专门用于把字符串转换成数值。
    
         parseInt():从第一位起取到整数部分
    
     例:parseInt("1234blue") //1234
         parseInt("")   //NaN  ( 区别:Number("")  //0)
         parseInt("   112abc")  //112
         parseInt("22.5")  //22   
         parseInt()还可以指定基数(可以解析不同进制数):parseInt("0xAF",16) //175
        
         parseFloat():从第一位起取到小数部分(只识别第一个小数点),只解析10进制数。
    
         例:parseFloat("1234blue") //1234
         parseFloat("22.5") //22.5
         parseFloat("22.5.22") //22.5
         
    注意: console.log(Number("3.125e7")); //31250000
          console.log(parseInt("3.125e7")); //3
          console.log(parseFloat("3.125e7")); //31250000
    

    1.String--字符串类型

    字符串可以使用双引号 " "赋值,也可以使用单引号' '赋值。

    例如:
      var name = "admin";     //双引号
      console.log(name); //"admin"; 
      console.log(typeof(name)); //"string"
    
    
      var name = 'admin';   //单引号
    

    String 数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,

        \n 换行
        \t 制表
        \b 空格
        \r 回车
        \f 进纸
    

    重点

      查看字符串的长度:length属性
        var str = "hello world"; 
        console.log(str.length);//字符串长度为11,包含中间空格
    
    查看字符串相应位置的字符。
        var str = "hello world"; 
        console.log(str[1]);//查找对应下标  e
    
    转化为字符串的2种方法:
    
       1.toString() 
        数组、布尔值、对象和字符串值都有toString()方法。
        但null和undefined值没有这个方法。
    
     例:
        var arr = [1,2,3,4];
        console.log(arr.toString());
    
        注意:toString()可以传递一个参数:输出数值的基数
    
        var sum = 10;
        console.log(sum.toString()) //"10"  (默认为10进制)
        console.log(sum.toString(2)) //"1010"
        console.log(sum.toString(8)) //12
        console.log(sum.toString(10)) //10
    
       2.String(变量)
        强转函数,可以转化任何类型的值 
    
      例:var num1;
        String(123)    //  "123"
        String(3>4)    //  "false"
        String(3<4)    //  "true"
        String(num1)   //  "undefined"
        String(null)   //  "null"
    
       "+"也可以把某个值转换为字符串,也可以拼接多个字符串。
        var str = 111+""; //"111"
        var str = "hello" + " world"; //"hello world" 
    

    好了,今天就暂时先到这里,欲知后事如何,且听下回分解

    相关文章

      网友评论

          本文标题:JavaScript基本数据类型详解

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