JavaScript中的數(shù)據(jù)類型介紹
一、基本數(shù)據(jù)類型(原始值類型)
基本類型:字符串(String)、數(shù)字(Number)、布爾(Boolean)、對空(Null)、未定義(Undefined)、Symbol。
基本類型的變量是存放在棧內(nèi)存(Stack)里,棧內(nèi)存中保存了變量標(biāo)識符和指向堆內(nèi)存中該對象的指針。
注:Symbol 是 ES6 引入了一種新的原始數(shù)據(jù)類型,表示獨(dú)一無二的值。
JavaScript 擁有動態(tài)類型。這意味著相同的變量可用作不同的類型:
var x; // x 為 undefined var x = 5; // 現(xiàn)在 x 為數(shù)字 var x = "John"; // 現(xiàn)在 x 為字符
1、字符串
字符串是存儲字符(比如 "Bill Gates")的變量。
字符串可以是引號中的任意文本。您可以使用單引號或雙引號:
var carname="Volvo XC60"; var carname='Volvo XC60';
您可以在字符串中使用引號,只要不匹配包圍字符串的引號即可:
var answer="It's alright"; var answer="He is called 'Johnny'"; var answer='He is called "Johnny"';
2、數(shù)字
JavaScript 只有一種數(shù)字類型。數(shù)字可以帶小數(shù)點(diǎn),也可以不帶:
var x1=34.00; //使用小數(shù)點(diǎn)來寫 var x2=34; //不使用小數(shù)點(diǎn)來寫
極大或極小的數(shù)字可以通過科學(xué)(指數(shù))計(jì)數(shù)法來書寫:
var y=123e5; // 12300000 var z=123e-5; // 0.00123
3、布爾
布爾(邏輯)只能有兩個(gè)值:true 或 false。
var x=true; var y=false;
布爾常用在條件測試中。
要把任何值轉(zhuǎn)換為布爾型數(shù)據(jù),在值的前面增加兩個(gè) !! 感嘆號即可,!!0 為 False,其余的均為 True。
4、undefined 和 null
undefined 這個(gè)值表示變量不含有值。
可以通過將變量的值設(shè)置為 null 來清空變量。注意 undefined 和 null 都是小寫
cars=null; person=null;
Undefined 與 null 的值相等,但類型不相等:
typeof undefined // undefined typeof null // object null == undefined // true null === undefined // false
原始數(shù)據(jù)值是一種沒有額外屬性和方法的單一簡單數(shù)據(jù)值。
typeof 運(yùn)算符可返回以下原始類型之一:
- string
- number
- boolean
- undefined
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (假如 x 沒有值)
二、引用數(shù)據(jù)類型:
對象(Object)、數(shù)組(Array)、函數(shù)(Function)。引用類型的值是保存在堆內(nèi)存(Heap)中的對象(Object),堆內(nèi)存中保存了對象的內(nèi)容。
1、數(shù)組
下面的代碼創(chuàng)建名為 cars 的數(shù)組:
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW";
或者 (condensed array):
var cars=new Array("Saab","Volvo","BMW");
或者 (literal array):
var cars=["Saab","Volvo","BMW"];
創(chuàng)建空的數(shù)組
var arr3 = new Array( ); var arr4 = [ ];
數(shù)組下標(biāo)是基于零的,所以第一個(gè)項(xiàng)目是 [0],第二個(gè)是 [1],以此類推。
您將在本教程稍后的章節(jié)中學(xué)到更多關(guān)于數(shù)組的知識。
2、 對象
對象由花括號分隔。在括號內(nèi)部,對象的屬性以名稱和值對的形式 (name : value) 來定義。屬性由逗號分隔:
var person={firstname:"John", lastname:"Doe", id:5566};
上面例子中的對象 (person) 有三個(gè)屬性:firstname、lastname 以及 id。
空格和折行無關(guān)緊要。聲明可橫跨多行:
var person={ firstname : "John", lastname : "Doe", id : 5566 };
也可先創(chuàng)建對象再追加屬性和方法
var people = new Object(); people.name = 'Tom'; people.age = 21; people.eat = function(){ }
對象屬性有兩種尋址方式:
name=person.lastname; name=person["lastname"];
3、函數(shù)
var fn = function(){}; console.log(typeof(fn)); //'function'
typeof 運(yùn)算符可返回以下兩種類型之一:
- typeof 運(yùn)算符把對象、數(shù)組或 null 返回 object。
- typeof 運(yùn)算符不會把函數(shù)返回 object。
typeof {name:'Bill', age:62} // 返回 "object" typeof [1,2,3,4] // 返回 "object" (并非 "array",參見下面的注釋) typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function"
typeof 運(yùn)算符把數(shù)組返回為 "object",因?yàn)樵?JavaScript 中數(shù)組即對象。如果你要判斷該對象是否為數(shù)組,可以使用以下兩種方法:
1、使用 isArray 方法:IE9+開始支持
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; // 判斷是否支持該方法 if (Array.isArray) { if(Array.isArray(cars)) { document.write("該對象是一個(gè)數(shù)組。") ; } }
2、使用 instanceof 操作符
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; if (cars instanceof Array) { document.write("該對象是一個(gè)數(shù)組。") ; }
到此這篇關(guān)于JavaScript數(shù)據(jù)類型的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javaScript中一些常見的數(shù)據(jù)類型檢查校驗(yàn)
- javascript基本數(shù)據(jù)類型和對象類型歸檔問題解析
- javascript基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)換教程示例
- javascript數(shù)據(jù)類型基礎(chǔ)示例教程
- JavaScript數(shù)據(jù)類型轉(zhuǎn)換
- javascript中instanceof運(yùn)算符的用法詳解
- JavaScript中7種位運(yùn)算符在實(shí)戰(zhàn)的妙用
- 你可能不知道的JavaScript位運(yùn)算符詳解
- JavaScript詳細(xì)分析數(shù)據(jù)類型和運(yùn)算符
相關(guān)文章
Javascript學(xué)習(xí)筆記之相等符號與嚴(yán)格相等符號
本文詳細(xì)介紹了javascript中的相等符號以及嚴(yán)格相等符號,需要的朋友可以參考下2014-11-11關(guān)于IE BUG與字符串截取substr的解決辦法
本篇文章小編為大家介紹一下,關(guān)于IE BUG與字符串截取substr的解決辦法,有需要的朋友可以參考一下2013-04-04詳解微信小程序中var、let、const用法與區(qū)別
微信小程序是可以使用最新ES6標(biāo)準(zhǔn)規(guī)范的Javascript來開發(fā)的,所有ES6中的新特性微信小程序也是支持的,下面我們來總結(jié)下信小程序中var、let、const用法與區(qū)別2020-01-01