JS基础语法(05)-隐式数据类型转换

  • 1.为什么要有隐式类型转换?

    • 当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算
  • 2.什么是隐式类型转换:编译器自动转换

本小节知识点

  • 1.转成string类型:+号两边如果有一边是字符串,则会把另一边转换成字符串,然后进行拼接
  • 2.转成number类型:以下几种运算符会将任何数据转换成number类型再运算,如果无法转换则为NaN
    • 自增自减(++ –)
    • 算术运算符(+ - * / %)
    • 比较运算符(> < >= <= == != === !==)
      • 说明:全等与不全等会先比较值(此时会隐式转换再比较),然后再比较数据类型
  • 3.转成boolean类型:逻辑非(!)会将任何数据转为boolean类型再运算

  • 4.+号有三种含义:数学正负号(转成number)、算术运算符(转成number)、字符串连接符(转成string)


<script>
    /*隐式类型转换:运算符在运算时,如果两边的数据类型不一致,编译器会先转换数据类型进行运算
        * 1. +号两边如果有一边是字符串,则会把另一边转换成字符串,然后进行拼接
        * 2.以下几种运算符会将任何数据转换成number类型再运算,如果无法转换则为NaN
            * 自增自减(++ --)
            * 算术运算符(+ - * / %)
            * 比较运算符(> < >= <= == != === !==)
                * 说明:全等与不全等会先比较值(此时会隐式转换再比较),然后再比较数据类型
         * 3.逻辑非(!)会将任何数据转为boolean类型再运算

         * 4.+号有三种含义:数学正负号(转成number)、算术运算符(转成number)、字符串连接符(转成string)
     */


    //示例1
    var str1 = '1';
    var str2 = 'abc'
    console.log ( ++ str1 );//2
    console.log ( ++ str2 );//NaN

    //示例2
    //此时+号含义并不是字符串连接符,而是算术运算符,所以会将true转成number
    console.log ( 1 + true );//2
    console.log ( 1 + "true" );//1ture    字符串连接符:+号两边有一边是字符串
    console.log ( 100 * "3" * false );//0


    //示例3
    console.log ( "10" + "3" > 100 );//true  (1)先进行字符串拼接得到"103" (2)然后把"103"转成103>100
    console.log ( "10" - 3 > 100 );//false (1)先把"10"转成10 然后相减得到7 (2)7>100

    //示例4
    console.log ( ! "0" );//false   boolean('0') = true
    console.log ( ! 0 );//true boolean(0) = false

</script>

猜你喜欢

转载自blog.csdn.net/u013263917/article/details/80699988