02.JS數據類型與數據類型轉換

前言:
   學習一門編程語言的基本步驟
 (01)瞭解背景知識
 (02)搭建開發環境
 (03)語法規範
 (04)常量和變量
 (05)數據類型
 (06)數據類型轉換
5.數據類型——datatype
  數據分爲原始類型和引用類型,
  原始類型分爲數值型(number),字符串型(string),布爾型(boolean),未定義型(undefined),空(null)
 (1)數值型-number
        分爲整型和浮點型
        1)整型-parseInt() 編程

     //整型,在內存中佔有4個字節
     //二進制
     var num01=10;
     console.log(num01);//輸出爲2
     //八進制,以0開頭
     var num02=012;
     console.log(num02);//輸出爲10
     //十進制
     var num03=13;
     console.log(num03);//輸出爲13
     //十六進制,以0x開頭,a~f表明10-15,不區分大小寫
     var num04=0x10;
     console.log(num04);//輸出爲16
     var num05=0xff;
     console.log(num05);//輸出爲255 ff=15*16+15
     //不管變量是幾進制的數字,打印的結果最終都是十進制

         

        2)浮點型—parseFloat()
            分爲定點小數和指數型小數編程語言

     //浮點型,在內存中佔8個字節
     //定點小數
     var f=3.14;//普通小數
     //指數型
     var f1=3.14e3;// e3表明10的三次方  3.14*10的三次方,輸出爲3140
     var f2=3.14e-1;//e-1表明10的負一次方 3.14*10的負一次方,輸出爲-0.314
     console.log(f1,f2);
     //檢測數據類型,typeof xx=類型是XX
     console.log(typeof f2);//數據類型爲number

 (2)字符串型-string
         數據要被引號所包含就是字符串型,不區分單雙引號,
         若是查詢任意一個字符的Unicode碼,每次只能查看一個,不能一次查看多個。注意:編輯器必定要在UTF8的格式查詢。編輯器

     //字符串型
     '一'.charCodeAt();       //unicode碼爲19968
     "oksana".charCodeAt();   //unicode碼爲111
     "o".charCodeAt();        //unicode碼爲111
     "k".charCodeAt();        //unicode碼爲107
     '你好'.charCodeAt();      //unicode碼爲20320
     '你'.charCodeAt();        //unicode碼爲20320
     '好'.charCodeAt();        //unicode碼爲22909
     //由此可證實,多個字符只能查詢第一個字符的unicode碼
     //被單引號或是雙引號包裹的就是字符串,這種類型統稱爲字符串型數據

 (3)布爾型-boolean
         true/false
         在程序中表示真或是假,用於一些比較的結果,還有一些是否的結果,例如是否登陸,是否註冊,是否...學習

     //布爾型
     var b2=3>1;
     console.log(b2,typeof b2);//輸出結果爲true,類型爲boolean

 (4)未定義型-undefined
         聲明瞭變量未賦值,結果就是undefinedspa

     //未定義型-undefined
     var a;//聲明變量,未賦值
     console.log(typeof(a))//查詢數據類型爲undefined

 (5)空-null
         只有一個值是null,與引用類型一塊兒使用。code

   //
   var b=null;
   console.log(b,typeof b);

6.數據類型轉換——datatype transform
 (1)隱式轉換——在運算的過程當中自動發生轉換
         1)數字+字符串——數字被轉換成字符串 orm

      2+'3';        //'23'
      2+'hi';       //"2hi"
      2+'你好';    //"2你好"

         2)數字+布爾型——布爾型轉成數字,true——>1,false——>0blog

      3+true //4
      3+false //3

         3)布爾型+字符串——true轉字符串變成拼接seo

      var a=true+"oksana";
      console.log(a);   //輸出trueoksana
      var b=false+"oksana";
      console.log(b);   //輸出falseoksana

         4)JS中(+)加號運算的做用
              執行加法運算和字符串間的拼接內存

       //執行加法運算
       var num1=3,num2=true,num3='oksana',num4=6;
       console.log(num1+ num4);         //9
       console.log(num1+ num4+ num2);   //10
       //執行字符串間的拼接
       console.log(num1+ num2+ num3);    //4oksana
       console.log(num2+ num3+ num1);    //trueoksana3
       console.log(num3+ num1+ num2);    //oksana3true
       //聲明變量保存一我的的姓名性別,打印‘個人姓名叫(變量),性別(變量)
       var uname='oksana',sex='女';
       console.log('個人姓名叫'+uname+',性別是'+sex);//個人姓名叫oksana,性別是女

          5)JS中減法(-),乘法(*),除法(/)運算會發生隱式轉換
               將運算符兩端的數據自動調用Number轉化爲數值型後運算,若是轉換失敗,返回NaN(Not a Number),意味不是一個數字,轉換失敗後和任何值執行加減乘除都會返回NaN。

       //其餘運算符轉換,減法、乘法、除法中不管兩端的數據是什麼類型,都會轉換成數字類型
       console.log(5-3);  //2
       console.log(5*3);  //15
       console.log(5/3);  //1.6666666666666667
       console.log(5-'3');  //2,'3'轉化爲數字3
       console.log(5*'3');  //15
       console.log(5/'3');  //1.6666666666666667
       console.log('5'-'3'); //2,'3','5'轉換爲數字3,5
       console.log('5'*'3'); //15
       console.log('5' / '3'); //1.6666666666666667
       console.log('3'-true);//2,true轉換爲1
       console.log('3'*true);//3
       console.log('3'/true);//3
       console.log('3'-false);//3,false轉換爲0
       console.log('3'*false);//0
       console.log('3'/false);//Infinity
       console.log('3'-null);//3,null轉換爲0
       console.log('3'*null);//0
       console.log('3'/null);//Infinity
       console.log('2a'-5);//NaN,2a轉換後不是一個數字,轉換失敗
       console.log('2a'/5);//NaN
       console.log('2a'*5);//NaN ——> Not a Number,不是一個數字,而NaN和任何一個數加減乘除都是NaN

  (2)強制轉換
         1)強制轉爲數字型 —— Number()

      //強制轉爲數字型
      var num1=Number('2');
      var num2=Number(true);
      var num3=Number('2a');
      var num4=Number(undefined);
      var num5=Number(null);
      console.log(num1,typeof num1);//2
      console.log(num2,typeof num2);//1
      console.log(num3,typeof num3);//NaN
      console.log(num4,typeof num4);//NaN
      console.log(num5,typeof num5);//0

         2)強制轉化爲整型 —— parseInt()
              經常使用於將字符串或者是數字轉爲整型,其餘的數據會返回NaN,若是要轉換的字符串,開頭爲非數字,則返回NaN, 未定義、空、布爾型,返回NaN。

      //轉爲整型
      var n1=parseInt('1');
      var n2=parseInt(1.2);
      var n3=parseInt('2a');
      var n4=parseInt('a2');
      var n5=parseInt(undefined);
      var n6=parseInt(null);
      var n7=parseInt(true);//未定義、空、布爾型,返回NaN
      console.log(n1,typeof n1);//1 "number"
      console.log(n2,typeof n2);//1 "number"
      console.log(n3,typeof n3);//2 "number"
      console.log(n4,typeof n4);//NaN "number"
      console.log(n5,typeof n5);//NaN "number"
      console.log(n6,typeof n6);//NaN "number"
      console.log(n7,typeof n7);//NaN "number"

         3)強制轉化爲浮點型 —— parseFloat()
              和parseInt的用法基本一致,只是轉換爲浮點型數據

      //強制轉化爲浮點型
      var n1=parseFloat('1');
      var n2=parseFloat(1.2);
      var n3=parseFloat('2.5a');
      var n4=parseFloat('a2.5');
      var n5=parseFloat(undefined);
      var n6=parseFloat(null);
      var n7=parseFloat(true);
      console.log(n1,typeof n1);//1 "number"
      console.log(n2,typeof n2);//1.2 "number"
      console.log(n3,typeof n3);//2.5 "number"
      console.log(n4,typeof n4);//NaN "number"
      console.log(n5,typeof n5);//NaN "number"
      console.log(n6,typeof n6);//NaN "number"
      console.log(n7,typeof n7);//NaN "number"

         4)強制將數值型和布爾型轉爲字符串型 —— toString()

      //將數值,布爾型轉爲字符串和
      var num=10,boo=true;
      var str=num.toString();
      var str1=boo.toString();
      console.log(num,str,typeof str);//10 "10" "string"
      console.log(boo,str1,typeof str1);//true "true" "string"
相關文章
相關標籤/搜索