美文网首页
JS 数据类型 & 类型转换

JS 数据类型 & 类型转换

作者: Christoles | 来源:发表于2019-02-27 18:04 被阅读0次

    一、数据类型

    • 数据类型的判断方法

             * 方法一:typeof
             * 1、number
             * 2、string
             * 3、boolean
             * 4、undefined
             * 5、symbol
             * 6、object
             * 7、function
      
             * 方法二:Object.prototype.toString.call(data);
             * data:你要判断的变量
      
    • 数据类型2大类型

        * (1)简单数据类型 :存放在 *内存栈*。
        * 1、number => 数值类型
        * 2、string => 字符串类型
        * 3、Boolean => 布尔值 -->true false
        * 4、null => 空(连容器都没有),指对一个空对象的引用。
        * 5、undefined => 空(容器里面没有东西),指一个变量未赋值的时候,
                        js会给这个变量一个值即为undefined。
        * 6、symbol => 唯一的值
      
        * (2)复杂数据类型 :存放在 *内存堆* 中。
        * object => 对象
      


    二、类型转换

     类型转换有2种:
         强制转换:就是调用js提供方法进行转换的方式。
         隐式转换:就是在特定的环境中自动转换的方式。
    

    1. 字符串转数字

    • parseInt()
    • parseFloat()
    • Number()
    parseInt和parseFloat的区别
                 *  1、parseInt 是转换为整数,parseFloat转换为浮点数;
                 *  2、parseInt 可以传入第二个参数,parseFloat没有第二个参数。
    
    * 1、parseInt(),将字符串类型转换为一个整数;
                  如果一个字符串不包含有数字,则转换为NaN
         parseInt(data,num) <=有两个参数
            data:你需要转换的数据
            num:该转换的数据是几进制的数据(可选)
    
    * 2、parseFloat(),将字符串转换为小数(浮数点)
    
    * 3、Number() 不管整数小数都转为数字,如果是非数字则返回NaN
    
    
    * NaN(not a number):是一个非数字的数字(数值)类型。
    * isNaN()判断一个数据是否是非数字--如果这个数据是 数字则返回false,
    如果这个数据是 非数字则返回true。
    

    使用实例:

    num="0xa";
                console.log(parseInt(num,16));//10  --- 16进制转为10进制
    
    var num1=0.1,num2=0.2,num3;num3 = num1 + num2;
                console.log((num3).toFixed(2));//输出保留2位小数的字符串
    
    var num4 = 15;
                console.log(num4.toString());//将数字转换成字符串
                console.log(num4.toString(16));//f 16进制
                console.log(String(num4));//转换为字符串
    
    

    2. 数字转字符串

    • toFixed(num) => num表示你要保留的小数点的位数
    • toString() => num表示你转换成几进制(可选,默认十进制)
    • String(data)

    注意:

    • 1、这些方法不会改变原来的值,当调用这些方法的时候是会返回一个新的值给我们。
    • 2、当通过String方法来将数据转换为字符串时,会把undefined和null直接转为“undefined”和“null”, 转换其他数据类型时,其实String还是通过调用toString来转换的。
    • 3、其他类型的值转换成Boolean值;Boolean() 关于其他类型的数据转换为Boolean的时候是true还是false:
      • 3.1、空字符 => flase
      • 3.2、非空字符 => true
      • 3.3、非0数字 => true => 1
      • 3.4、0 => flase => 0
      • 坑点 3.5、空数组 => 另说
      • 坑点 3.6、空对象 => 另说

    3. null 和 undefined 的区别

    • null:表示对一个空对象的引用;
        当一些变量我们不需要用的时候,js有垃圾回收(GC)机制,会自动将不需要用到的变量赋值为null;所以 通常我们需要主动销毁一个对象的时候可以赋值为null。
    • undefined:表示未赋值的变量的默认值,函数默认值,对象的属性。
    console.log(typeof null);//object
    console.log(typeof undefined);//undefined
                            
    console.log(null == undefined);//true   比较值
    console.log(null === undefined);//false 比较值和类型  其类型不同
    
    数组:
                var obj = {};
                console.log(typeof obj.a);//undefined
    

    4. symbol(desc) 唯一

    symbol(desc):表示唯一的值
    desc:对这个变量的说明,没有其他意义。

    //          var syb = Symbol("描述作用");
                console.log(typeof syb);//Symbol
                console.log(syb);//Symbol()
    

    \color{blue}{* 当symbol作为一个对象 的属性的时候。添加的时候加上中括号[...];}
    \color{blue}{* 获取对象中的 symbol 属性的时候同样需要用中括号来获取,注意这个属性不需要加引号。}
    定义一个对象
       --- 语法:var name = { }

    • --- 对象获取其属性是通过点(除了symbol类型的属性)或者中括号(属性名要加上引号,symbol类型除外)来实现的。
    • --- 获取对象的方法也是通过点来实现的。
                console.log(typeof obj1);
                var age = Symbol();
                var obj1 = {
                    [age]:18,
                    name:'bgg',
                    skill:function(){
                        alert('同学,你快睡着了!');
                    }
                }
                console.log(obj1);
                console.log(obj1[age]);//18
                console.log(obj1.name);//bbg
                console.log(obj1.skill());//skill加小括号
    

    5. 数组 Array

    可以通过arr[arr.length]这种方式来按顺序添加数组元素。
    可以通过arr.length = 0 ;来清空数组

               arr[10] = "我是数组的第11个元素,下标值为10";//已知个数添加元素
               arr[arr.length] = "我是第12个元素";//不知个数添加元素
               arr.length = 0;//清空数组
               console.log(typeof arr);//object 数组是一个对象
    

    相关文章

      网友评论

          本文标题:JS 数据类型 & 类型转换

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