這篇文章將為大家詳細(xì)講解有關(guān)javascript有多少種數(shù)據(jù)類型,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、龍子湖ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的龍子湖網(wǎng)站制作公司
javascript有9種數(shù)據(jù)類型,分別為:字符串(String)、數(shù)字(Number)、布爾(Boolean)、Null、Undefined、Symbol、對象(Object)、數(shù)組(Array)、函數(shù)(Function)。
JavaScript數(shù)據(jù)類型:
JavaScript語言的每一個值,都屬于某一種數(shù)據(jù)類型。JavaScript的數(shù)據(jù)類型,共有9種:
值類型(基本類型):字符串(String)、數(shù)字(Number)、布爾(Boolean)、空(Null)、未定義(Undefined)、Symbol。
引用數(shù)據(jù)類型:對象(Object)、數(shù)組(Array)、函數(shù)(Function)。
注:Symbol 是 ES6 引入了一種新的原始數(shù)據(jù)類型,表示獨(dú)一無二的值。
1、Undefined:Undefined類型只有一個值,即特殊值undefined。在使用var聲明變量,但未對其加以初始化時,這個變量值就是undefined。
2、Null:Null類型是第二個只有一個值的數(shù)據(jù)類型。其特殊值就是Null。從邏輯角度上看,null是一個空的對象指針。而這也正是使用typeof操作符檢測null值,會返回“object”的原因。
3、Boolean:即布爾類型,該類型有兩個值:true
false。需要注意的是,Boolean類型的字面值true和false是區(qū)分大小寫的。也就是說,True和False(以及其它的混合大小形式)都不是Boolean值,只是標(biāo)識符。
4、Number:該類型的表示方法有兩種形式,第一種是整數(shù),第二種為浮點(diǎn)數(shù)。整數(shù):可以通過十進(jìn)制,八進(jìn)制,十六進(jìn)制的字面值來表示。浮點(diǎn)數(shù):就是該數(shù)值中必須包含一個小數(shù)點(diǎn),且小數(shù)點(diǎn)后必須有一位數(shù)字。
5、String:String類型用于表示由零或多個16位的Unicode字符組成的字符序列,即字符串。至于用單引號,還是雙引號,在js中還是沒有差別的。記得成對出現(xiàn)。
6、Symbol類型
符號 (Symbols) 是 ECMAScript 第 6 版新定義的。符號類型是唯一的并且是不可修改的
var s = Symbol()
Symbol 函數(shù)前不能使用 new 命令,否則會報錯。這是因?yàn)樯傻?Symbol 是一個原始類型的值,不是對象
Symbol 函數(shù)可以接受一個字符串作為參數(shù),表示對 Symbol 實(shí)例的描述
7、Object:Object數(shù)據(jù)類型,稱為對象,是一組數(shù)據(jù)和功能(函數(shù))的集合??梢杂胣ew操作符后跟要創(chuàng)建的對象類型的名稱來創(chuàng)建。也可以用字面量表示法創(chuàng)建。在其中添加不同名(包含空字符串在內(nèi)的任意字符串)的屬性。
8、Array
JavaScript 數(shù)組用方括號書寫。數(shù)組的項(xiàng)目由逗號分隔。
下面的代碼聲明(創(chuàng)建)了名為 cars 的數(shù)組,包含三個項(xiàng)目(汽車品牌):
var cars = ["Porsche", "Volvo", "BMW"];
數(shù)組索引基于零,這意味著第一個項(xiàng)目是 [0],第二個項(xiàng)目是 [1],以此類推。
ECMAScript中的數(shù)組和其他語言的數(shù)組有著相當(dāng)大的區(qū)別:
ECMAScript 數(shù)組的每一項(xiàng)可以保存任何類型的數(shù)據(jù);
ECMAScript數(shù)組的大小可以動態(tài)調(diào)整,可向數(shù)組添加元素或者刪除元素;
9、Function
ECMAScript中的函數(shù)是對象,與其他引用類型一樣具有屬性和方法。因此,函數(shù)名實(shí)際是一個指向函數(shù)對象的指針。
1)、函數(shù)聲明
function sum(num1,num2){ return num1+num2; }//函數(shù)聲明 var sum = function(num1,num2){ return num1+num2; }; //函數(shù)表達(dá)式 這里的分號很重要
2)、沒有重載
function addSomeNumber(num){ return num + 100; } function addSomeNumber(num){ return num + 200; } var result = addSomeNumber(100); //300
創(chuàng)建第二個函數(shù)時覆蓋了引用第一個函數(shù)的變量addSomeNumber。
3)、函數(shù)聲明與函數(shù)表達(dá)式
alert (sum(10,10)); function sum(num1,num2){ return num1+num2; }
這樣的代碼可以正常執(zhí)行。代碼開始執(zhí)行前,解析器會率先讀取函數(shù)聲明并將其添加到執(zhí)行環(huán)境中,對代碼求值前,JS引擎在第一遍會聲明函數(shù)并將它們放到源代碼樹的頂部。但改為函數(shù)表達(dá)式就會出錯。
4)、作為值的函數(shù)
像傳遞參數(shù)一樣把一個函數(shù)傳遞給另一個函數(shù)
function callSomeFunction(someFunction,someArgument){ return someFunction(someArgument); } function add10(num){ return num+10; } var result1 = callSomeFunction(add10,10); alert(result1); //20 function getGreeting(name){ return "Hello"+name; } var result2 = callSomeFunction(getGreeting,"Mike"); alert(result2); //Hello Mike //callSomeFunction是通用的,函數(shù)作為第一個參數(shù)傳遞進(jìn)去,返回執(zhí)行第一個參數(shù)后的結(jié)果
從一個函數(shù)中返回另一個函數(shù)
function createComparisonFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(value1value2){ return 1; }else{ return 0; } } } var date = [{name:"Mike", age:28},{name:"Amy", age:29}];//創(chuàng)建包含兩個對象的數(shù)組 date.sort(creatComparisonFunction("name")); alert(date[0].name);//Amy date.sort(creatComparisonFunction("age")); alert(date[0].name);//Mike
關(guān)于“javascript有多少種數(shù)據(jù)類型”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。