javascript有9種資料類型,分別為:字串(String)、數字(Number)、布林(Boolean)、Null、Undefined、Symbol、物件(Object)、陣列(Array)、函數( Function)。
本教學操作環境:windows7系統、ECMAScript 5版、Dell G3電腦。
JavaScript資料型別:
JavaScript語言的每一個值,都屬於某一種資料型態。 JavaScript的資料型別,共有9種:
值型別(基本型別):字串(String)、數字(Number)、布林(Boolean)、空(Null)、未定義(Undefined)、Symbol。
引用資料型態:物件(Object)、陣列(Array)、函數(Function)。
註:Symbol 是 ES6 引入了新的原始資料類型,表示獨一無二的值。
1、Undefined:Undefined型別只有一個值,即特殊值undefined。在使用var宣告變量,但未對其加以初始化時,這個變數值就是undefined。
2、Null:Null類型是第二個只有一個值的資料型別。其特殊值就是Null。從邏輯角度來看,null是一個空的物件指標。而這正是使用typeof操作符來偵測null值,會回傳「object」的原因。
3、Boolean:即布林類型,此類型有兩個值:true
false。需要注意的是,Boolean類型的字面值true和false是區分大小寫的。也就是說,True和False(以及其它的混合大小形式)都不是Boolean值,只是標識符。
4、Number:此類型的表示法有兩種形式,第一種是整數,第二種為浮點數。整數:可以透過十進制,八進制,十六進制的字面值來表示。浮點數:就是該數值中必須包含一個小數點,且小數點後面必須有一位數字。
5、String:String類型用來表示由零或多個16位元的Unicode字元組成的字元序列,即字串。至於用單引號,還是雙引號,在js中還是沒有差別的。記得成對出現。
6、Symbol型別
符號 (Symbols) 是 ECMAScript 第 6 版新定義的。符號類型是唯一的且是不可修改的
var s = Symbol()
Symbol 函數前不能使用 new 指令,否則會報錯。這是因為產生的Symbol 是一個原始類型的值,不是物件
Symbol 函數可以接受一個字串作為參數,表示對Symbol 實例的描述
7、Object:Object資料類型,稱為對象,是一組資料和功能(函數)的集合。可以用new操作符後面跟著要建立的物件類型的名稱來建立。也可以用字面量表示法來創建。在其中新增不同名稱(包含空字串在內的任意字串)的屬性。
8、Array
JavaScript 陣列用方括號書寫。數組的項目由逗號分隔。
下面的程式碼聲明(創建)了名為cars 的數組,包含三個項目(汽車品牌):
var cars = ["Porsche", "Volvo", "BMW"];
數組索引基於零,這意味著第一個項目是[ 0],第二個項目是[1],以此類推。
ECMAScript中的陣列和其他語言的陣列有著相當大的差異:
ECMAScript 陣列的每一項可以保存任何類型的資料;
ECMAScript陣列的大小可以動態調整,可在陣列中新增元素或刪除元素;
【推薦學習:js基礎教學 】
9、Function
ECMAScript中的函數是對象,與其他引用型別一樣具有屬性和方法。因此,函數名實際上是一個指向函數物件的指標。
1)、函數宣告
function sum(num1,num2){ return num1+num2; }//函数声明 var sum = function(num1,num2){ return num1+num2; }; //函数表达式 这里的分号很重要
2)、沒有重載
function addSomeNumber(num){ return num + 100; } function addSomeNumber(num){ return num + 200; } var result = addSomeNumber(100); //300
建立第二個函數時覆寫了引用第一個函數的變數addSomeNumber。
3)、函數宣告與函數表達式
alert (sum(10,10)); function sum(num1,num2){ return num1+num2; }
這樣的程式碼可以正常執行。程式碼開始執行前,解析器會率先讀取函數宣告並將其加入執行環境中,對程式碼求值前,JS引擎在第一遍會宣告函數並將它們放到原始碼樹的頂部。但改為函數表達式就會出錯。
4)、作為值的函數
像傳遞參數一樣把一個函數傳遞給另一個函數
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是通用的,函数作为第一个参数传递进去,返回执行第一个参数后的结果
從一個函數中返回另一個函數
function createComparisonFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(value1<value2){ return -1; }else if(value1>value2){ return 1; }else{ return 0; } } } var date = [{name:"Mike", age:28},{name:"Amy", age:29}];//创建包含两个对象的数组 date.sort(creatComparisonFunction("name")); alert(date[0].name);//Amy date.sort(creatComparisonFunction("age")); alert(date[0].name);//Mike
更多程式相關知識,請造訪:程式設計影片! !
以上是javascript有哪幾種資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!