javascript 高级编程系列

javascript中的基本数据类型包括:

Undefined, Null, Boolean, Number, String 5种数据类型

1. Undefined 类型 (只有一个值 undefined, 常被用来表示未初始化的变量)

  • 如果一个变量未进行初始化则它的初始值为undefined, 数据类型为Undefined

         var myVar;

         myVar === undefined               // return true

         typeof myVar === 'undefined'   // return true

  • 函数的参数列表中,未传入的实参的形参其值为undfined

        function sum(a, b){

             if(b === undefined) b = 0;

             return a + b;

        }

       sum(1,2);     // return 3

       sum(1);        // return 1, 其中第二个参数未传递值,则其值为undefined, 

2. Null 类型 (只有一个值 null, 常被用来表示一个空对象指针)

  • 由于用来表示空对象,所以 typeof null === 'object'
  • 由于undefined 值派生自 null值,所以 null == undefined

3. Boolean 类型 (有两个值:true, false)

  • 数据类型转换使用 Boolean() 

        String:  Boolean('str'); // true     

                      Boolean('');    // false

        Number: Boolean(2);    // true

                      Boolean(0);    // false

        Object:   Boolean({});  // true

        Null:       Boolean(null); // false

        Undefined: Boolean(undefined);  // false;

4. String 类型

  • 数据类型转换 

       var myVar = 5;

       String(5);                //   return '5'   将任意类型转为字符串

       myVar.toString();     //   return '5',  undefined 与 null 值没有此方法

       myVar.toString(2);   //   return '101', 以二进制的形式返回

       myVar += '';           //    return '5',  利用数据自动转换

 5. Number 类型

  • 浮点型 由于计算舍入误差 最好不要用在条件测试中
  • 整型    8进制在严格模式下无效
  • 最大值 Number.MAX_VALUE, 最小值 Number.MIN_VALUE
  • 正无穷大 Number.POSITIVE_INFINITY, 负无穷大 Number.NEGATIVE_INFINITY, 函数isFinite(value) 用于断定一个数值是否介于正无穷和负无穷之间
  • NaN 表示一个不是数值的值, 函数isNaN(value) 用于判断一个值进行数据类型转换后是不是 '不是数值'
  • 数据类型转换 Number() , parseInt(), parseFloat()

       Number() : 可以转换任意类型的数据, 下面的表达式均返回true

                        Number(undefined) === NaN;    

                        Number(null) === 0;                

                        Number('34') === 34;             

                        Number('34df') === NaN;         

                        Number('') === 0;

                        Number(true)  === 1;              

                        Number(false) === 0;              

                        Number({})   === NaN;  

         parseInt(): 主要用于将字符串转换为整型类型, 第二个参数可以指定进制

                         parseInt(' 12df') === 12

                         parseInt('2.4dd') === 2

                         parseInt('') === NaN

                         parseInt('10', 10) === 10

                         parseInt('10', 2) === 2

         parseFloat(): 用于将字符串转为浮点型数据,规则与parseInt相似,但没有第二个参数但,只能转为10进制浮点数                 

原文地址:https://www.cnblogs.com/xiaodi-js/p/5932322.html