變量的數據類型
原始數據類型 引用數據類型
Undefined 對象
Null 數組
Boolean 函數
Number
String
原始數據類型---Undefined
1.Undefined 類型只有一個值,即特殊的Undefined;
在使用var 聲明變量但未對其進行初始化,這個變量值爲Undefinded
如:var message;
2.Undefinded指的是未定義的類型,如果alert(a)一個不存在的變量,會直接報錯,而不是Undefined
可見Undefined和正真未聲明還是有區別:
1.他是一種特殊類型
2。但是typeof未定義類型或者不存在不變量都返回Undefined
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//alert(a);//未定義就使用會報錯
// var b;
//alert(b);
//
//alert(typeof b);
var c=5;
alert("c:"+c);
</script>
</body>
</html>
原始類型---null
它只有一個專用值null,即它的字面量,值undefined實際上是從null派生來的,因此在ECMAScript中將兩者定義爲相等
例如:
alert(null==undefined);//輸出true
儘管兩者的值相等但他們的含義不同
undefined是聲明瞭變量但未對其初始化時賦予該變量的值
null用於表示尚未存在的對象,如果函數或者方法要返回對象,此時如果找不到部隊向,通常直接返回null
注意:
如果單純定義一個變量的初始化值爲null,他返回的類型爲object
原始數據類型---Boolean
只有兩個值 true、false ,區分大小寫和Java裏一樣
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//var flag=true;
//alert(typeof flag);
//alert(2==5);
alert(undefined==null);
</script>
</body>
</html>
原始數據類型---number
1.數值的分類:
1.整型:
八進制:
十六進制:
十進制:
2.浮點型
3.特殊值:
Infinity 無窮大
NaN(0/0) 不是數值類型
如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
var num = 6.34;
/*//定義八進制,一般以0開頭,組成部分0~7之間的數字
var num1=012;
//十六進制,一般以0X開頭,組成部分0~9,A~F之間的數字和字符
var num2=0x78;
var num3=-3/0;
//infinity和-infinity,number數據類型的兩個特殊值
var num4=-infinity;
var num5=0/0;//NaN
//NaN是number類型的一個特殊值,不等於任何類型,連自己都不相等*/
/* alert(NaN == NaN);
alert(typeof num);*/
var num6=28;//默認就是28
var num7=.9//默認爲0.9
//通過isFinite()判斷一個數是否有限值,有限就返回true,否則返回false
// alert(isFinite(-6/0));
//isNaN():判斷是否是非數字有就返回true,否則返回false
alert(isNaN("ssfdg"));
</script>
</body>
</html>
浮點型:
1.浮點型定義:
浮點數字:該數字鐘包含一個小數點,而且小數點後面必須至少有一位數字
2.浮點型數據的類型:
1.直接含有小數點 如:3.15
2.還可以使用指數計數法(實數後面跟一個e或者E,後面跟正負號,後面再加上一個整型的指數)1.243243E=-32
特殊值
1.Infinity:無窮大
1.Infinity:正無窮大
2.-Infinity:負無窮大
通過isFinite()判斷是否有限大
2.NaN
1.代表非數字值的特殊值,該屬性用於指示某個值不是數字
2.NaN有兩個特點:
1.任何和NaN的操作都是會返回NaN
2.NaN與任何數值都不相等,包括自身
3.不能用number.Nan比較來檢測一個值是否是數字,而是使用isNaN()來比較
4.isNaN()函數如果X是特殊的非數字值NaN
例如:
alert(isNaN(3));//false
alert(isNaN(“blue”));//true
alert(isNaN(true));//false
alert(isNaN(null));//false
alert(isNaN(undefined));//true
原始數據類型---String
1.由單引號或者雙引號括起來的字符序列
如:“122”,
2.轉義字符:
用一些普通的字符的組合來替代一些特殊字符,由於其組合改變了原來字符表示的含義,稱之爲轉義
1.字符型常量:表示的值是字符類型變量所能包含的值,通常用AscII表達式來表示一個字符常量
或者可以用單引號或者雙引號內加上反斜槓表示轉義字符
轉義字符:
\' 單引號
\" 雙引號
\& 和號
\\ 反斜槓
\n 換行符
\r 回車符
\t 製表符
\b 退格符
\f 換頁符
類型的轉換
1.隱式轉換
2.顯示轉換
隱式轉換
1.轉換成布爾類型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
/* //Undefined自動轉換成false
var a;
if(a){
alert("true")
}else{
alert("false");
}
//null自動轉換成false
if(null){
alert("轉換成true");
}else{
alert("轉換成false");
}*/
//nnmber --->boolean
//0,0.0,NaN-->false 其他數值轉換成true
/*
* String---》Boolean
* ""轉換false;
* 對象轉換成true
*
* */
var num=new Object();
var date=new Date();
if(date){
alert("轉換成true ");
}else{
alert("轉換成false");
}
</script>
</body>
</html>
結論:
1.Undefined--->false
2.null----》false
3.數值 0,0.0 ,NaN---->false 其他數值都是true
4.字符串 ""--->false "有內容"----》true
5.其他對象都是true
2.轉換成數值類型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
/*
undefined---->NaN
null---->0
boolean--->number 類型
true----》1
false----》0
String---->number類型
""---->0
"234"----->234
"a123"----->NaN
"0x90"---->轉換成十六進制對應的十進制
*/
alert("0x90t"-6);
</script>
</body>
</html>
結論:
undefined---->NaN
null---->0
boolean--->number 類型
true----》1
false----》0
String---->number類型
""---->0
"234"----->234
"a123"----->NaN
"0x90"---->轉換成十六進制對應的十進制
3.轉換成字符串類型
結論:
number----->String
23---->"23"
NaN--->"NaN"
infinity----->"infinity"
boolean----->string
false--->"false"
true---->"true"
undefined---String
undefined---->"undefined"
顯示轉換
1.Boolean類型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//Boolean();小括號裏面寫的是參數,把要轉換的值放進小括號裏,就得到一個Boolean類型的值
/*undefined轉換成false
null轉換成false
number---->boolean
0,0.0 ,NaN---->false
其他數值爲true
String----》Boolean*/
var flag=Boolean(new Date());
alert(flag+" "+typeof (flag))
//flag----》true
</script>
</body>
</html>
結論:
類型轉換規則Boolean();
0,-0----》false 1,2,3---->true NaN--->false
空字符串------>false 其他爲true
undefined------>false
null----->false
顯示轉換---數值類型轉換
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
var str="23.34dhfdshfkjhkds";
var str1="23.44vfdsgf";
alert(parseInt(str));
var num=parseFloat(str1);
alert(num);
</script>
</body>
</html>
結論:
Numbetr()可以將其他類型轉換成數值類型
undefined--->NaN
null---->0
true---->1
false---->0
字符串--->如果可以解析爲數值,則轉換成數值,否則爲NaN,0
空字符串----》0
parseInt()和ParseFloat()使用----->只能將字符串轉類型換成數值類型
1.字符串全部爲數字,“234“------》234
2.字符串中包含數字和非數字(從左往右截取,直到遇到第一個非數字爲止)
“a234”---->NaN
"234hfshdkjf"----->234
""----->NaN
顯示轉換----字符串類型
結論:
1.String()函數可以將其他的類型強制轉換成字符串類型
數值-----》數值本身
字符串-----》字符串本身
true---》“true”
false----》“false”
null--->“null”