JavaScript的隐式转换规则

75 阅读1分钟

1、JavaScript的隐式转换规则?

首先,我们先思考一下,js数据类型都有哪些?

String,Number,Object,Boolean,undefined,null.symbol

  1. 当运算符为加号"+"时
  1. 若一方有String类型,则返回结果为String类型;
  • 若有一方为Number类型,而另一方为Object类型,返回结果也会为String;
  • 若有一方为undefined类型,而另一方为String类型,返回结果也会为String;
  • 若有一方为Null类型,而另一方为String类型,返回结果也会为String;
  1. 若一方有Number类型,则返回结果为Number类型;
  • 若有一方为boolean类型,而另一方为Number类型,返回结果也会为Number;
  • 若有一方为undefined类型,而另一方为Number类型,返回结果也会为Number;
  • 若有一方为Null类型,而另一方为Number类型,返回结果也会为Number;

** 注:若有一方为number,另一方为Array,或者Object时,返回结果类型为String类型

    var a = "2";
    var b = 3;
    console.log(typeof(a+b));   //string
    
    var a = 2; var b = {a:2};
    console.log(typeof(a+b));   //string
    var a = 2; var b = [3,6,9,2];
    console.log(typeof(a+b));   //string
    
    var a = undefined;b = 2
    console.log(typeof(a+b));   //number
    var a = undefined;b = 5
    console.log(typeof(a+b));   //number
    var a = null;b = 5
    console.log(typeof(a+b));   //number