Flex基礎-----之Flex中資料型別
阿新 • • 發佈:2019-01-27
關於資料型別
原生資料型別:語言本身提供:字串、整數、布林型等
複雜資料型別:由基本資料型別組成的複合型型別:類、介面等。
基本資料型別:
- Boolean:布林型,true 和 false
- int: 整數,存放32位二進位制整數,範圍:-2147483648~2147483647,當超出自動轉為Number
- Null:空值,是字串和所有類的預設值。
- Number:整數型和浮點型,使用64位雙精度格式存放資料,沒有小數點時自動轉換成整數。最小值和最大值分別存放在Number 物件的MIN_VALUE 和 MAX_VALUE屬性中。
- String:字串,以Unicode 編碼格式存放。
- uint:正整數型別,0~4294967295
- void:值為undefined,只能用作函式的返回型別。
複雜資料型別:Object 物件、 Array 陣列、 Date 日期、Error 錯誤物件、Function 函式、 RegExp 正則表示式、XML XML資料物件、XMLList。
其中Object 是所有物件的基類。
以下是各個型別的預設值
- Object、Array :null
- Number:NaN
- int、uint:0
- Boolean:false
- *:不定型別,預設值:undefined。
7.3.1 物件
如果要在MXML中建立物件,可使用<mx:Object>標籤並新增所有屬性及其值。例如:
<mx:Object id="person" firstName="John" lastName="Smith" age="33" />
在MXML建立物件有個限制即不能建立多個巢狀的物件,而在script標籤中可建立包含多個複雜物件的物件,你可以先建立一個型別的Object物件,再呼叫建構函式,最後新增屬性:
var object :Object = new Object();
var otherObject :Object = new Object();
object.other = otherObject;
還可以通過大括號來建立物件,例如
var pertson:Object = {name:"John Smith",age:22,position:{department:"Accounting",Salary:50000},id:30003};
注意Person物件的position屬性指向另一個包含不同屬性的物件,還發現這裡的position並不需要先申明。
7.3.2 字串
var str1:String = 'string';
var str2:String = "string";
var str3:String = new String("string");
使用轉義符號“/” 來轉義符號後面的字元:"string/"test" = string"test
String 的屬性:
- length:用來獲取字串的長度
- contact(...args):合併字串,也可以使用+合併字串
- charAt(index):獲取index位置的字元。
- indexOf(val, starIndex):從starIndex 開始查詢val 在字串中第一個出現的位置。找不到返回-1
- split(delimiter, limit):返回以delimiter 分隔最大為limit的陣列。
- substr(startIndex, len):從startIndex 位置開始擷取長度為len的字元,如果startIndex為-1表示最後一個位置,當len大於最大長度時,自動返回最大長度值。
- substring(startIndex, endIndex):擷取從 startIndex 到 endIndex位置的字元,兩個引數都不能為負數,否則轉為0,如果endIndex 省略,取預設值:字元的長度。
- slice(startIndex, endIndex):同substring,並允許startIndex, endIndex 為複數。
- toUpperCase():轉換為大寫
- toLowerCase():轉換為小寫
7.3.3 數字計算
Math 類 方法說明:
- Math.round(n):四捨五入
- Math.floor(n):返回小於或等於指定數字n 的最大整數
- Math.ceil(n):返回大於或等於指定數字n 的最小整數
- Math.pow(val1, val2):計算val1 的 val2 次冪
- Math.sqrt(val):val的平方根
- Math.max(val1, val2, ...rest):技術給定數字的最大值
- Math.min(val1, val2, ...rest):技術給定數字的最小值
- Math.randow():獲取一個隨機數字: 小於1大於等於0
7.3.4 陣列的使用
var arr:Array = new Array(); //預設元素值為undefined
var arr:Array = new Array(3); //建立一個包含3個元素的陣列。
var arr:Array = new Array("1", "2", "3"); //直接給陣列定義元素
var arr:Array = [];
var arr:Array = ["1", "2", "3"];//這是我比較喜歡的建立方法
var arr:Array = [3]; //並不是定義3個元素,而是將3作為資料放到陣列中
獲得陣列元素:
arr[0]:第一個元素,如果下標超出範圍,返回 undefined
arr.length:數字的長度
插入元素:
- push():將資料新增到陣列的尾部,push("flex")
- unshift():將資料新增到陣列隊頂部,unshift("flex")
- splice(startIndex, deleteCount, ...values):把資料插入到陣列的指定位置,startIndex:操作的下標,deleteCount:要刪除的元素個數,...values:要新增的若干資料。
刪除元素:
- pop():刪除陣列的最後一個元素
- shift():刪除第一個元素
- splice(startIndex, deleteCount, ...values):刪除任意位置的元素,從startIndex開始刪除deleteCount個元素,並新增元素 values。
排序:
- sort:主要對簡單資料結構的陣列進行排序
- sortOn:對複雜資料結構的陣列排序
- reverse:將現有順序逆向
- Array.CASEINSENSITIVE:不區分大小寫
- Array.DESCENDING:降序排序
- Array.UNIQUESORT:如果元素都是唯一,不存在重複就進行排序,否則不排序
- Array.RETURNINDEXEDARRAY:將排序後的元素的新順序返回,但不修改原來的陣列
- Array.NUMERIC:按照數字大小排序
arr.sortOn("age", Array.NUMERIC); //"age"為元素的屬性,將使用age來排序
多維陣列:
var arr:Array = new Array();
arr:push(["1","2"]);
訪問:arr[0][0]
7.3.5 型別檢測和轉換
- typeof 物件:如果是由使用者的類產生的物件,一律返回object。只能對基本型別檢測。
資料型別 |
結果 |
資料型別 |
結果 |
Array |
object |
object |
object |
Boolean |
boolean |
String |
string |
Function |
function |
uint |
number |
int |
number |
XML |
xml |
Number |
number |
XMLList |
xml |
- 物件 is 型別:對物件的型別進行精確判斷。如果物件是型別返回true,否則返回false。
型別轉換:
- 隱式轉換:大部分由flash player 來完成,如:undefined 會自動轉為null
- 顯示轉換:通過編寫程式碼來完成:型別(物件) ,也可以通過這樣轉換:物件 as 型別 ,如果成功返回物件轉換後的值,否則返回null,不會引發異常。