JS中的數據類型


數據類型

var length = 11;// 數字
var lastName = "Gates";// 字符串
var cars = ["Porsche", "Volvo", "BMW"];// 數組
var x = {firstName:"Bill", lastName:"Gates"};// 對象 
字符串(String)

字符串(或文本字符串)是一串字符(比如 "qwer")。字符串被引號包圍,可使用單引號或雙引號。

<script>
	/*
	JS中創建字符串對象有兩種方式,
	但是屬性和函數都是通用的。
	*/
	var s = "第一種(小string)";
	alert(typeof s);//string
	
	var ss = new String("第二種(大string)");
	alert(typeof ss);//object
	/*----------常用函數----------*/
	var func = "JavaScript";
	//獲取字符串長度
	alert(func.length);//10
	//返回某個指定的字符串值在字符串中首次出現的位置
	alert(func.indexOf("va"));//2
	//如果要檢索的字符串值沒有出現,則該方法返回 -1
	alert(func.indexOf("m"));//-1
	//判斷字符串是否包含某個子字符串
	alert(func.indexOf("n") >= 0 ? "包含" : "不包含");//不包含
	//返回一個指定的字符串值最后出現的位置,在一個字符串中的指定位置從后向前搜索。
	alert(func.lastIndexOf("ri"));//6
	//在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
	alert(func.replace("Java","Live"));//LiveScript
	//substr()和substring()的區別。
	//在字符串中抽取從start下標開始的指定數目的字符,stringObject.substr(start,length)
	alert(func.substr(4,6));//Script
	//提取字符串中介於兩個指定下標之間的字符(不包含endIndex)。
	alert(func.substring(1,3));//av
</script>
數字(Number)

JavaScript 只有這一種數值類型。整數、小數、正數、負數、不是數字(NaN)、無窮大(Infinity (或-Infinity))都屬於Number類型。

<script>
	/*
	數字和字符串相加
	JS的加法和級聯(concatenation)都使用 + 運算符。
	數字用加法。字符串用級聯。
	JS從左向右進行編譯,
	在有+運算符的情況下,數字相加就是數字;
	但只要有字符串的參與,結果都是字符串級聯。
	*/
	var x = 10;
	var y = 20;
	var z = "The result is: " + x + y;
	alert(z);//The result is: 1020
	
	/*
	從左到右運算時先算10+20,數字之間是加法,得30;
	遇到字符串“30”后用級聯,所以是3030。 
	*/
	var t = "30";
	var result = x + y + t;
	alert(result);//3030
	
	/*
	在使用減(-)乘(*)除(/)運算符時,
	字符串擁有數字內容的話,會被轉換成數字進行運算。
	*/
	var n = "10";
	var m = "20";
	var mn = (m-n)+(m/n)+(n*m)
	alert(mn);//212
	
	/*
	NaN屬於JS保留詞,指示某個數不是合法數。
	用一個非數字字符串進行除法會得到NaN(Not a Number)。
	*/
	var a = 11;
	var b = "aaa";
	alert(a / b);//NaN
	
/*--------------------數字方法--------------------*/
	
	/*全局JS函數isNaN()可以確定某個值是否是數*/
	alert(isNaN(b));//true(表示不是一個數字)

	/*全局JS函數parseInt,
	可以將字符串自動轉換成數字,
	並且取整數位。*/
	alert(parseInt("3.999999"));//3
	
	/*全局JS函數parseFloat,
	可以將字符串自動轉換成數字*/
	alert(parseFloat(3.2) + 1);//4.2
	
	/*函數Math.ceil,可以向上取整*/
	alert(Math.ceil(1.2));//2

/*--------------------數字方法--------------------*/
	
	/*在數學運算中使用NaN的話,結果也是NaN*/
	var nan = NaN;
	alert(a + nan);//NaN
	
	/*
	Infinity(或-Infinity)
	是JS在計算數時超出最大可能數范圍時返回的值。
	除以0也會生成 Infinity。
	*/
	function inf(){
		var myNumber = 2;
		while (myNumber != Infinity) {
			myNumber = myNumber * myNumber;
		}
		return myNumber;
	}
	var inf = inf();
	alert(inf);//Infinity
</script>
布爾(Boolean)

1、布爾值只有兩個值:true 或 false。
2、在Boolean類型中有一個函數:Boolean()。語法格式:
Boolean(數據)
Boolean()函數的作用是將非布爾類型轉換成布爾類型,有東西就是true,沒有就是false。

<script>
	var name = "";
	if(name){
		alert("歡迎你"+name);
	}else{
		alert("用戶名不能為空!")
	}
</script>

在這里插入圖片描述

數組(Array)

JavaScript 數組用方括號書寫,數組的項目由逗號分隔。

對象(Object)

1、是所有類的超類,JavaScript對象用花括號來書寫,對象屬性是name:value對,由逗號分隔。

var person = {
	firstName:"Bill", 
	lastName:"Gates", 
	age:62, 
	eyeColor:"blue"};

2、Object包含屬性有: prototype 屬性、constructor 屬性;方法有:toLocaleString 方法、toString 方法、valueOf 方法。
3、如何創建對象

<script>
	//如何創建對象
	function haha(){
		alert("haha");
	}
	//當做普通函數來調用
	haha();//haha
	//當做類來創建對象
	var obj = new haha();//haha
	alert(obj);//[object Object]
</script>

4、函數及擴展函數

<script>
	Haha = function(a,b,c){
		//聲明屬性
		this.no = a;
		this.name = b;
		this.age = c;
		//函數
		this.getAge = function(){
			return this.age;
		}
	}
	var u1 = new Haha(11,"zhangsan",20);
	var uage = u1.age;
	alert(uage);//20
	//可以通過prototype這個屬性來給類動態擴展屬性以及函數
	Haha.prototype.getNo = function(){
		return this.no;
	}
	//調用擴展的getNo函數
	var uno = u1.no;
	alert(uno);//11
	//給string擴展一個函數
	String.prototype.xixi = function(){
		alert("string擴展函數");
	}
	"aaa".xixi();//string擴展函數
</script>
空(Null)

1、在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。但是,在 JavaScript 中,null 的數據類型是對象。
2、可以把 null 在 JavaScript 中是對象理解為一個 bug。它本應是 null。
3、可以通過設置值為 null 清空對象(也可以通過設置值為 undefined 清空對象):

var person = null;// 值是 null,但是類型仍然是對象
alert(typeof null);//object

4、空值與undefined不是一回事,空的字符串變量既有值也有類型:

var car = "";// 值是 "",類型是 "string"
未定義(Undefined)

1、在JavaScript中,沒有值的變量,其值是undefined。typeof 也返回undefined。
2、任何變量均可通過設置值為undefined進行清空。其類型也將是undefined:

person = undefined;// 值是 undefined,類型是 undefined

3、null、NaN、undefined

<script>
	alert(null == NaN);//false
	alert(null == undefined);//true
	alert(undefined == NaN);//false
</script>
JavaScript 擁有動態類型

JavaScript 擁有動態類型。這意味着相同的變量可用作不同的類型:

var x;               // x 為 undefined
var x = 5;           // 現在 x 為數字
var x = "John";      // 現在 x 為字符串
typeof 運算符

1、JS中有一個運算符叫做typeof,這個運算符可以在程序的運行階段動態的獲取變量的數據類型。
2、typeof運算符的語法格式:
typeof 變量名
3、typeof運算符的運算結果是以下6個字符串之一,注意字符串都是小寫(typeof運算符返回變量或表達式的類型。):
"undefined"、"number"、"string"、"boolean"、"object"、"function"

<script>
	function sum(a,b){
		if(typeof a == "number" && typeof b == "number"){
			return a + b;
		}
		alert("格式錯誤");
	}
	var value = sum(2,"abc");
	alert(value);
	//格式錯誤
	//undefined
			
	var value2 = sum(1,2);
	alert(value2);//3
			
	var q;
	alert(typeof q);//undefined
			
	var w = 11;
	alert(typeof w);//number
			
	var e = "abc";
	alert(typeof e);//string
			
	var r = null;
	alert(typeof r);//object
		
	var t = false;
	alert(typeof t);//boolean
				
	function mc(){}
	alert(typeof mc);//function
</script>
===運算符

當使用=== 相等運算符后,相等的數變為不相等,因為===運算符需要類型和值同時相等。

<script>
	var x = 500;             
	var y = new Number(500);
	var z = 500;
	alert(x === y);//false
	/*因為x和y的類型不同。*/
	alert(x === z);//true
</script>


免責聲明!

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



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