前言:
學習一門編程語言的基本步驟
(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"