js中数据的隐式转换!

186 阅读2分钟

数据类型的分类

首先我们要知道数据类型分为原始类型和引用类型(基本类型)。

  • 原始类型:Number String Boolean Undefined Null。 基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值。
    
  • 引用类型:Object Array Function Data 等。 javascript的引用数据类型是保存在堆内存中的对象。
    

数据与数据之间怎么转化?

1 显式转化: 通过API转化  API表示内置函数.
2 隐式转化: 一般通过运算符转化.

为什么存在隐式转换?

当不同的数据类型之间进行运算时,为了程序可以运行产生隐式转化。 简单的讲 就是为了程序可以正常运行。 
例如: if()中 需要booleantruefalse);
if(true){

            // 当()运算结果为true时执行

        }

隐式转换!

其他类型隐式转化成字符串

什么情况下 其他类型数据会转化为string1:其他类型遇到连接运算符
2:对象与数组与其他类型数据运算的时候
字符串 + 其他类型 = 字符串
例题:
var  res3 = [123] + {};
// '123'+{}
// 123[object Object]

其他类型转Number

  •    stringNumber
     1 数字类型直接转
     2 空字符 以及纯空格字符转 0
     3 其他字符 NaN
     注意:(NaN 不能进行运算,如果运算 结果要么是NAN  要么是false
  •    booleannumber : true 1 , false 0
        来个例题 
        var result = 1+ true - false -'123' + '123';
        //  1 + 1 - 0 - 123 + '123'
        // 2-123+'123'
        //  -121+'123'
        //  NaN
        最后我们可以得出:基本类型数据的相互转化只转一次,引用类型转基本类型 先变字符串 再变其他。
        总结: 如果数组和对象直接运算, 先转字符串,再转其他类型,最后再运算。
    
  •         其他类型变Boolean
      什么情况隐式转换Boolean类型
      比较运算符 ,个别情况关系运算符
      
      以下输出结果全为falseconsole.log( Boolean(false));
         console.log( Boolean(0));
         console.log( Boolean(''));
         console.log( Boolean(undefined));
         console.log( Boolean(null));
         console.log( Boolean(NaN));
         
       以下为true  
         console.log( Boolean([])); //true
         
    
  • 如何推理一数据类型转化为什么类型? 看运算结果 简单粗暴!

  • 先说到这里,有什么意见大家可以评论区留言,以后会多多分享 ,大家一起交流进步!