類型轉(zhuǎn)換及運(yùn)算符

(1)Num ber

<!DOCTYPE html>
 +<html lang="en">
 +<head>
 +  <meta charset="UTF-8">
 +  <title>Number</title>
 +  <script type="text/javascript">
 +      /*
 +      在JS中所有的數(shù)值都是Number類型,
 +          包括整數(shù)和浮點(diǎn)數(shù)(小數(shù))
 +      JS中可以表示的數(shù)字的最大值
 +          Number.MAX_VALUE
 +              1.7976931348623157e+308
 +          Number.MIN_VALUE 大于0的最小值
 +              5e-324
 +
 +          如果使用Number表示的數(shù)字超過(guò)了最大值,則會(huì)返回一個(gè)
 +              Infinity 表示正無(wú)窮
 +              -Infinity 表示負(fù)無(wú)窮
 +              使用typeof檢查Infinity也會(huì)返回number
 +      NaN 是一個(gè)特殊的數(shù)字,表示Not A Number
 +          使用typeof檢查一個(gè)NaN也會(huì)返回number
 +      */
 +      //數(shù)字123
 +      var a = 123;
 +      //字符串123
 +      var b = "123";
 +      
 +      /*
 +      可以使用一個(gè)運(yùn)算符 typeof 來(lái)檢查一個(gè)變量的類型
 +      語(yǔ)法:typeof 變量    
 +          檢查字符串時(shí),會(huì)返回string
 +          檢查數(shù)值時(shí),會(huì)返回number
 +      */
 +      // console.log(typeof a);
 +
 +      a = Number.MAX_VALUE * Number.MAX_VALUE;
 +      a = Infinity;
 +      a = "abc" * "bcd";
 +      a = NaN;
 +      // console.log(typeof a);
 +
 +      a = Number.MIN_VALUE;
 +      // console.log(a);
 +
 +      /*在JS中整數(shù)的運(yùn)算基本可以保證精確*/
 +      var c = 123456789 + 987654321;
 +
 +      /*
 +      如果使用JS進(jìn)行浮點(diǎn)運(yùn)算,可能得到一個(gè)不精確的結(jié)果
 +      所以千萬(wàn)不要使用JS進(jìn)行對(duì)精確度要求比較高的運(yùn)算
 +      */
 +      c = 0.1 + 0.2;
 +      console.log(c);
 +  </script>
 +</head>
 +<body>
 +
 +</body>
 +</html> 

(2)Boolean

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Boolean</title>
    <script type="text/javascript">
        /*
        Boolean 布爾值
            布爾值只有兩個(gè),主要用來(lái)做邏輯判斷
            true
                - 表示真
            false
                - 表示假
            
            使用typeof檢查一個(gè)布爾值時(shí),會(huì)返回boolean
        */
        var bool = false;
        console.log(typeof bool);
        console.log(bool);
    </script>
</head>
<body>

</body>
</html>

(3)_Null和Undefined

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Null和Undefined</title>
    <script type="text/javascript">
        /*
        Null(空值)類型的值只有一個(gè),就是null
            null這個(gè)值專門用來(lái)表示一個(gè)為空的對(duì)象
            使用typeof檢查一個(gè)null值時(shí),會(huì)返回object
        Undefined(未定義)類型的值只有一個(gè),就undefind
            當(dāng)聲明一個(gè)變量,但是并不給變量賦值時(shí),它的值就是undefined
            使用typeof檢查一個(gè)undefined時(shí)也會(huì)返回undefined
        */
        var a = null;
        console.log(a);
        console.log(typeof a);
        var b;
        b = undefined;
        console.log(b);
        console.log(typeof b);
    </script>
</head>
<body>

</body>
</html>

(4)強(qiáng)制類型轉(zhuǎn)換

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>強(qiáng)制類型轉(zhuǎn)換</title>
    <script type="text/javascript">
        /*
        強(qiáng)制類型轉(zhuǎn)換
            - 指將一個(gè)數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為其他的數(shù)據(jù)類型
            - 類型轉(zhuǎn)換主要指,將其他的數(shù)據(jù)類型,轉(zhuǎn)換為
                String Number Boolean
        */
        /*
        將其他的數(shù)據(jù)類型轉(zhuǎn)換為String
        方式一:
            - 調(diào)用被轉(zhuǎn)換數(shù)據(jù)類型的toString()方法
            - 該方法不會(huì)影響到原變量,它會(huì)將轉(zhuǎn)換的結(jié)果返回
            - 但是注意:null和undefined這兩個(gè)值沒(méi)有toString()方法,如果調(diào)用他們的方法,會(huì)報(bào)錯(cuò)
        方式二:
            - 調(diào)用String()函數(shù),并將被轉(zhuǎn)換的數(shù)據(jù)作為參數(shù)傳遞給函數(shù)
            - 使用String()函數(shù)做強(qiáng)制類型轉(zhuǎn)換時(shí),
                對(duì)于Number和Boolean實(shí)際上就是調(diào)用的toString()方法
                但是對(duì)于null和undefined,就不會(huì)調(diào)用toString()方法
                它會(huì)將 null 直接轉(zhuǎn)換為 "null"
                將 undefined 直接轉(zhuǎn)換為 "undefined"
        */
        var a = 123;
        //調(diào)用a的toString()方法
        //調(diào)用xxx的yyy()方法,就是xxx.yyy()
        a = a.toString();
        a = true;
        a = a.toString();
        a = null;
        //a = a.toString(); //報(bào)錯(cuò)
        a = undefined;
        //a = a.toString(); //報(bào)錯(cuò)
        a = 123;
            
        //調(diào)用String()函數(shù),來(lái)將a轉(zhuǎn)換為字符串
        a = String(a);
        a = null;
        a = String(a);
        
        a = undefined;
        a = String(a);
        console.log(typeof a);
        console.log(a);
    </script>
</head>
<body>

</body>
</html>

(5)轉(zhuǎn)換為Number

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>轉(zhuǎn)換為Number</title>
    <script type="text/javascript">
        /*
        將其他的數(shù)據(jù)類型轉(zhuǎn)換為Number
        轉(zhuǎn)換方式一:
            使用Number()函數(shù)
                - 字符串 --> 數(shù)字
                    1.如果是純數(shù)字的字符串,則直接將其轉(zhuǎn)換為數(shù)字
                    2.如果字符串中有非數(shù)字的內(nèi)容,則轉(zhuǎn)換為NaN
                    3.如果字符串是一個(gè)空串或者是一個(gè)全是空格的字符串,則轉(zhuǎn)換為0
                - 布爾 --> 數(shù)字
                    true 轉(zhuǎn)成 1
                    false 轉(zhuǎn)成 0
                - null --> 數(shù)字 0
                - undefined --> 數(shù)字 NaN
        
        轉(zhuǎn)換方式二:
            - 這種方式專門用來(lái)對(duì)付字符串
            - parseInt() 把一個(gè)字符串轉(zhuǎn)換為一個(gè)整數(shù)
            - parseFloat() 把一個(gè)字符串轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)
        */
        var a = "123";
        //調(diào)用Number()函數(shù)來(lái)將a轉(zhuǎn)換為Number類型
        a = Number(a);
        a = "789abc";
        a = Number(a);
        a = "";
        a = Number(a);
        a = "      ";
        a = Number(a);
        a = true;
        a = Number(a);
        a = false;
        a = Number(a);
        a = null;
        a = Number(a);
        a = undefined;
        a = Number(a);
        a = "123.567a456px";
        //調(diào)用parseInt()函數(shù)將a轉(zhuǎn)換為Number
        //parseInt()可以將一個(gè)字符串中的有效的整數(shù)內(nèi)容去出來(lái),然后轉(zhuǎn)換為Number
        a = parseInt(a);
        // parseFloat()作用和parseInt()類似,不同的是它可以獲得有效的小數(shù)
        a = "123.456.789px";
        a = parseFloat(a);
        //如果對(duì)非String使用parseInt()或parseFloat(),它會(huì)先將其轉(zhuǎn)換為String然后在操作
        a = true;
        a = parseInt(a);
        a = 198.23;
        a = parseInt(a);
        console.log(typeof a);
        console.log(a);
    </script>
</head>
<body>

</body>
</html>

(6)其他進(jìn)制的數(shù)字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>其他進(jìn)制的數(shù)字</title>
    <script type="text/javascript">
        var a = 123;
            
        /*
        在js中,如果需要表示16進(jìn)制的數(shù)字,則需要以0x開(kāi)頭
            如果需要表示8進(jìn)制的數(shù)字,則需要以0開(kāi)頭
            如果要要表示2進(jìn)制的數(shù)字,則需要以0b開(kāi)頭,但是不是所有的瀏覽器都支持
        */
        
        //十六進(jìn)制
        a = 0x10;
        a = 0xff;
        a = 0xCafe;
        
        //八進(jìn)制數(shù)字
        a = 070;
        
        //二進(jìn)制數(shù)字
        //a = 0b10;
        
        //像"070"這種字符串,有些瀏覽器會(huì)當(dāng)成8進(jìn)制解析,有些會(huì)當(dāng)成10進(jìn)制解析
        a = "070";
        
        // a = parseInt(a);
        //可以在parseInt()中傳遞一個(gè)第二個(gè)參數(shù),來(lái)指定數(shù)字的進(jìn)制
        a = parseInt(a,10);
        
        console.log(typeof a);
        console.log(a);
    </script>
</head>
<body>

</body>
</html>

(7)轉(zhuǎn)換為Boolean

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>轉(zhuǎn)換為Boolean</title>
    <script type="text/javascript">
        /*
        將其他的數(shù)據(jù)類型轉(zhuǎn)換為Boolean
            使用Boolean()函數(shù)
                - 數(shù)字 ---> 布爾
                    - 除了0和NaN,其余的都是true
                - 字符串 ---> 布爾
                    - 除了空串,其余的都是true
                - null和undefined都會(huì)轉(zhuǎn)換為false
                - 對(duì)象也會(huì)轉(zhuǎn)換為true
        */      
        var a = 123; //true
        a = -123; //true
        a = 0; //false
        a = Infinity; //true
        a = NaN; //false
        
        //調(diào)用Boolean()函數(shù)來(lái)將a轉(zhuǎn)換為布爾值
        a = Boolean(a);
        a = "hello";//true
        a = "true";//true
        a = "false";//true
        a = "錯(cuò)誤";//true
        a = " ";//true
        a = "";//false
        a = Boolean(a);
        
        a = null; //false
        a = Boolean(a);
        
        a = undefined; //false
        a = Boolean(a);
        
        a = window; //true
        a = Boolean(a);
        
        console.log(typeof a);
        console.log(a);
    </script>
</head>
<body>

</body>
</html>

(8)運(yùn)算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>運(yùn)算符</title>
    <script type="text/javascript">
        /*
        運(yùn)算符也叫操作符
            通過(guò)運(yùn)算符可以對(duì)一個(gè)或多個(gè)值進(jìn)行運(yùn)算,并獲取運(yùn)算結(jié)果
            比如:typeof就是運(yùn)算符,可以來(lái)獲得一個(gè)值的類型,它會(huì)將該值的類型以字符串的形式返回
                "number" "string" "boolean" "undefined" "object"
        算數(shù)運(yùn)算符
            當(dāng)對(duì)非Number類型的值進(jìn)行運(yùn)算時(shí),會(huì)將這些值轉(zhuǎn)換為Number然后在運(yùn)算
            任何值和NaN做運(yùn)算都得NaN
            +
                +可以對(duì)兩個(gè)值進(jìn)行加法運(yùn)算,并將結(jié)果返回
                如果對(duì)兩個(gè)字符串進(jìn)行加法運(yùn)算,則會(huì)做拼串,會(huì)將兩個(gè)字符串拼接為一個(gè)字符串,并返回
                任何的值和字符串做加法運(yùn)算,都會(huì)先轉(zhuǎn)換為字符串,然后再和字符串做拼串的操作
            -
                - 可以對(duì)兩個(gè)值進(jìn)行減法運(yùn)算,并將結(jié)果返回
            *
                * 可以對(duì)兩個(gè)值進(jìn)行乘法運(yùn)算
            /
                / 可以對(duì)兩個(gè)值進(jìn)行除法運(yùn)算
            %
                % 取模運(yùn)算(取余數(shù))
        */      
        var a = 123;
        var result = typeof a;
        // console.log(result);
        // console.log(typeof a);
        result = a + 1;
        result = 456 + 789;
        result = true + 1;
        result = true + false;
        result = 2 + null;
        result = 2 + NaN;
        result = "123" + "456";
        result = "你好" + "小帥哥";
        // console.log(result);
        var str = "鋤禾日當(dāng)午,汗滴禾下土,誰(shuí)知盤中餐,粒粒皆辛苦";
        // console.log(str);
        result = 123 + "1";
        result = true + "hello";
        // console.log(result);
        //任何值和字符串相加都會(huì)轉(zhuǎn)換為字符串,并做拼串操作
        /*
        我們可以利用這一特點(diǎn),來(lái)將一個(gè)任意的數(shù)據(jù)類型轉(zhuǎn)換為String
            我們只需要為任意的數(shù)據(jù)類型 + 一個(gè) "" 即可將其轉(zhuǎn)換為String
            這是一種隱式的類型轉(zhuǎn)換,由瀏覽器自動(dòng)完成,實(shí)際上它也是調(diào)用String()函數(shù)
        */
        var c = 123;
        c = String(c);
        c = null;
        c = c + "";
        // console.log(typeof c);
        // console.log(c);
        c = 123;
        // console.log("c = " + c);
        result = 1 + 2 + "3";//33
        result = "1" + 2 + 3; //123
        result = 100 - 5;//95
        result = 100 - true;//99
        result = 100 - "1";//99
        result = 2 * 2;//4
        result = 2 * "8";
        result = 2 * undefined;//NaN
        result = 2 * null;//0
        result = 4 / 2;//2
        result = 3 / 2;//1.5
        // console.log("result = "+result);
        /*
        任何值做- * /運(yùn)算時(shí)都會(huì)自動(dòng)轉(zhuǎn)換為Number
        我們可以利用這一特點(diǎn)做隱式的類型轉(zhuǎn)換
            可以通過(guò)為一個(gè)值 -0 *1 /1來(lái)將其轉(zhuǎn)換為Number
            原理和Number()函數(shù)一樣,使用起來(lái)更加簡(jiǎn)單
        */
        var d = "123";
        d = d - 0;
        // console.log(typeof d);
        // console.log(d);
        result = 9 % 3;//0
        result = 9 % 4;//1
        result = 9 % 5;//4
        
        console.log("result = "+result);
    </script>
</head>
<body>

</body>
</html>

(9)一元運(yùn)算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一元運(yùn)算符</title>
    <script type="text/javascript">
        /*
        一元運(yùn)算符,只需要一個(gè)操作數(shù)
            + 正號(hào)
                - 正號(hào)不會(huì)對(duì)數(shù)字產(chǎn)生任何影響
            - 負(fù)號(hào)
                - 負(fù)號(hào)可以對(duì)數(shù)字進(jìn)行符號(hào)的取反
        
            - 對(duì)于非Number類型的值,它會(huì)將先轉(zhuǎn)換為Number,然后再運(yùn)算
            - 可以對(duì)一個(gè)其他的數(shù)據(jù)類型使用+,來(lái)將其轉(zhuǎn)換為number,它的原理和Number()函數(shù)一樣
        */
            
        var a = 123;
        a = +a;
        a = -a;
        
        a = true;
        a = -a;
        
        a = "18";
        a = +a;
        
        /*console.log("a = " + a);
        console.log(typeof a);*/
        
        var result = 1 + +"2" + 3;
        
        console.log("result = "+result);
    </script>
</head>
<body>

</body>
</html>

(10)<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自增和自減</title>
    <script type="text/javascript">
        /*
        自增 ++
            - 通過(guò)自增可以使變量在自身的基礎(chǔ)上增加1
            - 對(duì)于一個(gè)變量自增以后,原變量的值會(huì)立即自增1
            - 自增分成兩種:后++(a++) 和 前++(++a)    
                無(wú)論是a++還是++a,都會(huì)立即使原變量的值自增1
                不同的是a++和++a的值不同
                a++的值等于原變量的值(自增前的值)
                ++a的值等于新值 (自增后的值)
        
        自減 --
            - 通過(guò)自減可以使變量在自身的基礎(chǔ)上減1
            - 自減分成兩種:后--(a--) 和 前--(--a)
                無(wú)論是a--還是--a都會(huì)立即使原變量的值自減1
                不同的是a-- 和 --a的值不同
                    a-- 是變量的原值 (自減前的值)
                    --a 是變量的新值 (自減以后的值)
        */
        var a = 1;
        
        //使a自增1
        //a++;
        //++a;
        
        //console.log("++a = " + ++a);
        //console.log("a++ = " + a++);
        
        //console.log("a = " + a);
        
        
        var c = 10;
        
        //第一次c++,是在10的基礎(chǔ)上自增
        c++;
        
        //第二次c++,是在11的基礎(chǔ)上自增
        //console.log(c++);
        
        var d = 20;
        
        //console.log(++d);//21
        //console.log(++d);//22
        
        //20 + 22 + 22
        var result = d++ + ++d + d ;
        console.log("result = " + result);
    </script>
</head>
<body>

</body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容