Flex基础-----之Flex中数据类型

关于数据类型

一个变量或者常量被声明时,必须指定其数据类型:
原生数据类型:语言本身提供:字符串、整数、布尔型等
复杂数据类型:由基本数据类型组成的复合型类型:类、接口等。

基本数据类型:
  • 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 字符串

可以使用单引号和双引号 来声明字符串,也可以使用String 的构造函数来生成:
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:将现有顺序逆向
排序规则:排序规则可同时使用如:sort(Array.CASEINSENSITIVE | Array.DESCENDING)
  • 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,不会引发异常。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值