复杂程度 | 极低 |
使用频率 | 高 |
成员类型 | 静态模块 |
Std.is模块负责判断一个值是否为一个指定类型的值,这个类型的默认范围有以下几类:
类型 | 描述 |
Number | 判断是否为数字,或者数字字符串 |
String | 判断类型是否为字符串 |
Function | 判断类型是否为函数 |
Object | 判断类型是否为Object |
PlainObject | 判断是否为纯对象 |
Array | 判断是否为一个数组 |
Empty | 判断是否为空,参考isEmpty |
NonEmpty | 判断是否非空 |
Element | 判断是否为DOM元素 |
Widget | 判断是否为一个Std.ui的widget实例对象 |
Layout | 判断是否为一个Std.ui的layout实例对象 |
同时,如果在执行Std.is方法的时候,传递的两个值是相同的,Std.is方法会返回true,如果传递的参数第一个是正则表达式,第二个是字符串,如何这个字符串匹配这个正则表达式,那么会返回true
如果两个参数都是DOM对象,或者其中一个是Std.dom实例对象,那么Std.is方法会用它们的原始DOM对象进行判断,并且返回一个Boolean值.
当传递的第一个参数为一个字符串的时候,并且不是在上述范围之类,那么Std.is方法会在其自身的静态成员中查找, 如果这个字符串存在于Std.is的静态成员之中,那么Std.is方法将会使用这个静态函数,将参数2作为这个静态函数的参数,执行之后将返回值当作自身的返回值.
当然,如果手动在Std.is下添加一个静态函数,那么Std.is也会使用这个静态函数进行判断,例如
Std.is.fruit = function(name){
return "almond apple apricot arbutus carambola casaba coconut filbert fig lemon orange".indexOf(name) !== -1
}
执行
Std.is("fruit","apple");
相当于
Std.is.fruit("apple");
方法名称 | 成员类型 | 描述 |
::alnum | static | 判断字符是否为数字,字母,下划线 |
::blankChar | static | 判断字符是否空格,tab,换行 |
::color | static | 判断字符串是否为颜色值 |
::ie | static | 判断浏览器是否IE |
::keyword | static | 判断字符串是否为js关键字 |
::number | static | 判断是否数字或者数字字符串 |
::operatorChar | static | 判断字符是否为运算符 |
::singleTag | static | 判断是否为html单标签名称 |
::validAlNum | static | 判断字符串是否只包含数字,字符串和下划线 |
::DOM | static | 判断是否为DOM元素或者Std.dom实例对象 |
Boolean Std.is(RegExp validator,String value);
Boolean Std.is(Object elem,Object elem2);
Boolean Std.is(String type,data);
名称 | 类型 | 描述 |
validator | RegExp | 需要与参数2进行匹配的正则表达式 |
value | String | 需要与参数1进行判读的字符串值 |
elem | Object | DOM对象,或者Std.dom实例对象 |
elem2 | Object | DOM对象,或者Std.dom实例对象 |
type | String | 需要进行判断的类型,或者Std.is成员函数名称 |
data | Any | 需要进行判断的数据 |
//true
Std.is("NonEmpty",[1,2,3,4]);
//true
Std.is("Function",function(){});
//true
Std.is("color","red");
Std.is("color","#ffffff");
Std.is("color","rgb(11,22,33)");
Std.is("color","rgba(11,22,33,0.5)");
//true
Std.is(Std.dom("body"),document.body);