前言:
學習一門編程語言的基本步驟
(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
宣告了變數未賦值,結果就是undefined
//未定義型-undefined var a;//宣告變數,未賦值 console.log(typeof(a))//查詢資料型別為undefined
(5)空-null
只有一個值是null,與參考型別一起使用,
//空 var b=null; console.log(b,typeof b);
6.資料型別轉換——datatype transform
(1)隱式轉換——在運算的程序中自動發生轉換
1)數字+字串——數字被轉換成字串
2+'3'; //'23' 2+'hi'; //"2hi" 2+'你好'; //"2你好"
2)數字+布爾型——布爾型轉成數字,true——>1,false——>0
3+true //4 3+false //3
3)布爾型+字串——true轉字串變成拼接
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"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/149825.html
標籤:JavaScript
下一篇:JS高階編程技巧--惰性函式
