EXT核心API详解(二)-Array/Date/Function/Number/String

 

EXT核心API详解(二)-Array/Date/Function/Number/String

Array类
indexOf( Object o )  Number
object是否在数组中,找不到返回-1;找到返回位置

remove( Object o )  Array
从数组中删除指定的对象object,如果找不到object则数组无变化

Number类
constrain( Number min, Number max )  Number
检查数值是否介于min与max之间, 如果大于max 返回max,如果小于min返回min, 否则返回当前值

String类
escape( String string )  String
将string中的'和\替换为\' \\

format( String string, String value1, String value2 )  String
格式化字符串,例
  1. var cls = 'my-class', text = 'Some text';
  2. var s = String.format('div class={0}{1}div', cls, text);
复制代码
结果 div class=my-classSome textdiv

leftPad( String string, Number size, [String char] )  String
以char将string补齐为size长度,char默认定义空格

toggle( String value, String other )  String
交换值,如果当前值等于value,则被赋值other,反之等于value,例
  1. sort = sort.toggle('ASC', 'DESC');
复制代码
trim()  String
去除开头或结尾多余的空格


Date类
Date.parseDate( String input, String format )  Date
将字符串string依指定的格式format转换为时间,其中格式定义详见format方法
  1. dt = Date.parseDate(2006-01-15 32001 PM, Y-m-d his A );
复制代码
add( String interval, Number value )  Date
增加时间段,String interval在Data类中已定义
Date.MILLI = ms;
Date.SECOND = s;
Date.MINUTE = mi;
Date.HOUR = h;
Date.DAY = d;
Date.MONTH = mo;
Date.YEAR = y;
  1. var dt2 = new Date('1012006').add(Date.DAY, -5);
复制代码
between( Date start, Date end )  Boolean
是否在两个指定的时间之间

clearTime( Boolean clone )  Date
清除时间信息,如果clone为真,则克隆自已并返回新Date,本身的值并不改变,反之则修改自身的值

clone()  Date
克隆

format( String format )  String
格式化时间
代码含义范围
d两位数的日期01 至 31
D三字母的星期名Mon 至 Sun
j一位数的日期1 至 31
l完整的星期名Sunday 至 Saturday
S日期的英文顺序刻词尾,两个字符st, nd, rd or th.
w一周中的第几天0 (星期天) 至 6 (星期六)
z一年中的第几天0 至 364 (闰年365 )
WISO-8601 星期数, 周一算一个星期的开始1 至 53
F月的完整英文名January 至 December
m月,以0前导01 至 12
M三字母的简写月名 Jan 至 Dec
n1 至 12
t本月有多少天28 至 31
L是否闰年10
Y完整的年份例 1999 或 2003
y年的后两位  例  99 或 03
a上午下午小写am 或 pm
A上午下午大写AM 或 PM
g小时12小时制1 至 12
G小时24小时制0 至 23
h小时12小时制01 至 12
H小时24小时制00 至 23
i分钟00 至 59
s00 至 59
u毫秒001 至 999
O时区,与格林威治标准时间之差例 +0200
T时区简写例 EST, MDT ...
Z时区间距-43200 至 50400

其中Date类内置了几种格式
Date.patterns = {
    ISO8601LongY-m-d His,
    ISO8601ShortY-m-d,
    ShortDate njY,
    LongDate l, F d, Y,
    FullDateTime l, F d, Y gis A,
    MonthDay F d,
    ShortTime gi A,
    LongTime gis A,
    SortableDateTime Y-m-dTHis,
    UniversalSortableDateTime Y-m-d HisO,
    YearMonth F, Y
};
当然ISO8601Long和ISO8601Short还是非常招人喜欢的

dt.format(Date.patterns.ISO8601Long);
dt.format('Y-m-d His');

getDayOfYear()  Number
一年中的第几天,从0开始

getDaysInMonth()  Number
本月有多少天,

getElapsed( [Date date] )  Number
当前日期对象与date之间相差的毫秒数

getFirstDateOfMonth()  Date
本月的第一天

getFirstDayOfMonth()  Number
本月第一天是星期几

getGMTOffset()  String
时区信息(见格式定义中的'O')
getFirstDateOfMonth()  Date
本月最后一天

getFirstDayOfMonth()  Number
本月最后一天是星期几

getSuffix()  String
日期后导符(见格式定义中的S)

getTimezone()  String
时区(见T)

getWeekOfYear()  Number
一年中的第几周(见W)

isLeapYear()  Boolean
是否闰年


Function类
createCallback(args...)  Function
创建回叫方法

createDelegate( [Object obj], [Array args], [BooleanNumber appendArgs] )
创建委托
这两个记法除了传参方式不同,看不出有什么差异都是调用method.apply,createCallback可以看作一个简化版的createDelegate
createCallback==return method.apply(window, args);
createDelegate==return method.apply(obj  window, callArgs);
前者参数比较简单,直接传过去了,后者的规则比较复杂点,如果appendArgs为真,args将附加在参数列表之后,如果是数值,args将在参数列表的appendargs位置插入,其它情况下原参将不起作用
  1. var fn = func1.createDelegate(scope, [arg1,arg2], true)
  2. fn(a,b,c) === scope.func1(a,b,c,arg1,arg2);
  3. var fn = func1.createDelegate(scope, [arg1,arg2])
  4. fn(a,b,c) === scope.func1(arg1,arg2);
  5. var fn = func1.createDelegate(scope, [arg1,arg2], 1)
  6. fn(a,b,c) === scope.func1(a,arg1,arg2,b,c);
  7. var fn = func1.createCallback(arg1, arg2);
  8. fn() === func1(arg1, arg2)
复制代码
createCallback  function(args...)


createInterceptor( Function fcn, [Object scope] )  Function
创建阻断方法,如果fcn返回false,原方法将不会被执行

createSequence( Function fcn, [Object scope] )  Function
创建组合方法,执行原方法+fcn

defer( Number millis, [Object obj], [Array args], [BooleanNumber appendArgs] )Number
定时执行,隔millis毫秒后执行原方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值