数据类型与隐式类型转换

2018-08-22  本文已影响0人  molly的红草帽
1、六大数据类型:

1、number 数值型
2、string 字符串
3、boolean 布尔值 true false
4、null 空
5、undefined 未定义
6、混合型

6.1 object对象 { }
6.2 数组 [ ]
6.3 函数 function

2、隐式转换:


1.运算符
    +,两边只要是字符就是拼接

    -, 只做算数运算
       数字-数字  算数运算
       数字-"数字" 转换后数字运算
       其他的都显示NaN

    ||,  左true  ||  任意  --》返回左边的值  
         左false  ||   任意   --》返回右边的值
        只要有一个是对的,就是对的; 左边是true,就直接返回左边的,如果不是再看右边的,
        右边的true,返回右边的;两边都是0,null,undefined,false,返回三位还是0,null,
        undefined,false
x
    &&,  左true  ||  任意  --》返回左边的值  
         左false  ||   任意   --》返回右边的值
        同理|| 两边都是对的才显示对的。左边为false,返回false;左边true,看右边,此时右边
        是决定因素,右边true,则整个判断true,右边false,则整个判断false。因此左边为
        true,右边是啥返回啥

    NaN和任何运算都是NaN,可是NaN干不过字符 NaN+"3"--->"NaN3"


2.if()内
    2.1  非0为true,0为false
    2.2  非空字符为true,空字符为false
    2.3  undefined为false
    2.4  所有对象(除了null)为true
    2.5  NaN为false
    2.6  null为false
3.false为0,true为1

undefined定义了,但是未赋值
not a defined未定义,报错

3、例子

    if(0){
        console.log("ok")
    }else{
        console.log("no")  //
    }

    if(""){
        console.log("ok")
    }else{
        console.log("no")  //
    }

    if(undefined){
        console.log("ok")
    }else{
        console.log("no") //
    }

    if({}){
        console.log("ok")  //
    }else{
        console.log("no")
    }
    
    if(NaN){
        console.log("ok")
    }else{
        console.log("no")  //
    }
    
    特殊的值
    console.log(typeof null)        //object
    if(null){
        console.log("ok")
    }else{
        console.log("no")  //
    }
    
    console.log(1+1);           //2
    console.log(1+"1");         //11
    console.log(1+false);       //1
    console.log(1+true);        //2
    console.log(true+false);    //1
    console.log("1"+true);      //1true
    console.log(NaN+"1");       //NaN1
    console.log(NaN+true);      //NaN
    console.log(undefined+1);   //NaN
    console.log(undefined+NaN); //NaN
    console.log(undefined+null);//NaN
    console.log(null+1);        //1
    
    var str;
    console.log(str)        //undefined
    console.log(str2)       //str2 is not a defined
上一篇 下一篇

猜你喜欢

热点阅读