undefined和null js數據類型轉換自動轉換布爾類型


基本數據類型之undefined和null

undefined是表示未找到,是變量沒有正確賦值數據時,生成的數據類型

var int ; console.log(int)//undefined

null 是空表示賦值存儲的數據,是一個空數據,是一種特殊的數據類型 給變量直接賦值null注意英文字母必須小寫

var res = null;console.log(res) //null

null 是一種數值,表示空的數值

undefined是沒有被正確賦值

 

  在JavaScript中,沒有定義變量存儲數據類型的種類,一個變量中可以存儲任意的數據類型

            var int = 100;  存儲整數類型
            int = '北京';   存儲字符串類型
            int = true;     存儲布爾類型
            因為JavaScript中不限制變量存儲數據的數據類型,因此一個變量可以存儲任意的數據類型

        但是在JavaScript中,執行程序時,有時需要指定的數據類型參與程序的執行
        其他數據類型,原則上,不允許參與程序的執行
        此時就需要將變量中的數據類型,轉化為指定的數據類型

        舉例:
            例如我們現在的銀行賬戶中存儲的都是 人民幣 
            但是你要出國,去了 美國 , 消費時,必須使用 美元
            你要是超過,去了 歐洲 , 消費時,必須使用 歐元
            總之,你去哪兒,就要兌換成當地的 幣種

            就好像我們在某個程序執行時,必須要將變量中存儲的數據,轉換為指定的數據類型

        在計算機語言中,數據類型的轉化,分為兩種形式
            自動轉換 : 計算機程序執行時,自動完成的轉化

                      有的銀聯卡,你存儲的是人民幣,當你要消費美金時
                      會自動將人民幣轉化為美金來進行結算
                      這個轉化是銀行自動完成的,不需要我們人為參與

            強制轉化 : 程序員人為的將數據類型轉化為指定的數據類型

                       我們拿着錢,去銀行櫃台,兌換成我們指定的幣種
 // 其他數據類型,自動轉化為布爾類型

        // 在 if 判斷語句執行時,其他數據類型會自動轉化為布爾類型

        // 因為 在 if 語句中 ( ) 中 理論上只接受布爾類型數值 true 或者 false
        // 如果輸入了其他數據類型數據,會自動轉化為布爾類型數據  true 或者 false
        // 例如   if(true或者false) 可以執行
        // 如果寫 if('北京')   if('上海')  if(100)  不是類型類型的數據
        // 一定會先自動轉化為布爾類型的數值,再去進行相應程序的執行

        // 其他數據類型轉化為布爾類型的原則
        // 轉化為false的情況 :  數值 0    空字符串 ''   undefined   null   NaN
        // 其他情況都轉化為true
        // 特別注意: 0.0  0.000000 等 在轉化為布爾類型時,都視為 數值 0 
   if( true / false){
                // 如果()中是true,執行第一個{}中的語句
                console.log('小括號里面寫的是true');

            }else{
                // 如果()中是false,執行else后第二個{}中的語句
                console.log('小括號里面寫的是false');

            }

        // if()中應該寫 true 或者 false
        // 如果寫其他數據類型
        // 會自動轉化為 true 或者 false
        // 轉化為 true 的執行 第一個{}中的程序代碼
        // 轉化為 false 的執行 else后{}中的程序代碼

        if(0){
            console.log('轉化為true');
        }else{
            // 執行輸出這行代碼,證明 0 轉化為的是 false
            console.log('轉化為false'); 
        }

        // 空字符串
        if(''){
            console.log('轉化為true');
        }else{
            // 執行輸出這行代碼,證明 ''空字符串 轉化為的是 false
            console.log('轉化為false'); 
        }

        // undefined
        if(undefined){
            console.log('轉化為true');
        }else{
            // 執行輸出這行代碼,證明 undefined 轉化為的是 false
            console.log('轉化為false'); 
        }


        // null
        if(null){
            console.log('轉化為true');
        }else{
            // 執行輸出這行代碼,證明 null 轉化為的是 false
            console.log('轉化為false'); 
        }

        // NaN
        if(NaN){
            console.log('轉化為true');
        }else{
            // 執行輸出這行代碼,證明 NaN 轉化為的是 false
            console.log('轉化為false'); 
        }

        // 0.000000
        if(0.000000){
            console.log('轉化為true');
        }else{
            // 執行輸出這行代碼,證明 0.000000 轉化為的是 false
            console.log('轉化為false'); 
        }

        // 字符串 空格
        if(' '){
            // 執行輸出這行代碼,證明 ' '字符串空格  轉化為的是 true
            console.log('轉化為true');
        }else{
            console.log('轉化為false'); 
        }


        // 數值 -1 
        if(-1){
            // 執行輸出這行代碼,證明 -1 轉化為的是 true
            console.log('轉化為true');
        }else{
            console.log('轉化為false'); 
        }


        // 總結:
        // 1,只有5種情況是 false 
        //    數值0  包括 0  0.0   0.00000 等 
        //    空字符串 ''
        //    undefined
        //    null  
        //    NaN

        // 2,其他所有的情況,都會轉化為 true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM