這也是我們今天的講述重點.每一種數據類型Mt都為其擴展了自己的方法,這一點通過我為大家提供的Editplus素材文件就能看的出來,因為涉及的方法比較多,所以我就挑選幾個常用的方法給大家講解一下,其他沒有講到的方法請大家自行查閱素材文件內的說明和示例.
這部分的用法很簡單,你只需要知道自己現在正在操作的是什么數據類型,知道了數據類型之后要知道mt為該類型數據的操作都提供了哪些可供我們使用的方法即可,如果你不能確認自己現在操作的是什么類型的數據,你只需要這樣一句就能知道了.
alert(typeOf(???));
String:
//from 把傳入的參數轉為字符串,如:
String.from(2);//returns '2'
String.from(true);//returns 'true'
//uniqueID 產生一個獨一無二的ID
alert(String.uniqueID())
//trim 清除字符串兩端的空白字符串
alert(' i like cookies '.trim())
//toInt 將字符串轉為數字,并以給出的基準進制進行轉換
alert('4em'.toInt());//returns 4
'10px'.toInt();//returns 10
//toFloat 將字符串轉為浮點數
alert('95.25%'.toFloat());//returns 95.25
'10.848'.toFloat();//returns 10.848
//toLowerCase/toUpperCase大小寫轉換
alert('AA'.toLowerCase())
//test 使用正則表達式對字符串進行匹配測試
alert('I like cookies'.test('COOKIE','i'));忽略大小寫檢查字符串內是否包含指定的子字符串
//escapeRegExp 將字符串中對正則表達式敏感的字符進行轉義
alert('animals.sheep[1]'.escapeRegExp());//returns 'animals.sheep[1]'
//substitute 類似模板中的標簽替換
var my1='{a}|{b}|{b_2}.';
var my2 ={a:'這是標簽a,',b:'這是標簽b',b_2:'這個呢?'};
my1.substitute(my2);
上邊這9個方法是我認為在操作String類型的數據時比較常用的方法,大家可以認真看一下每一個的用途及例子.相信并不難理解.
Number:
//from 把傳入的參數轉為Number
alert(Number.from('12')); //returns 12
Number.from('hello') //returns null
//random 返回一個隨機數
Number.random(5,20);//returns a random number between 5 and 20.
//round 四舍五入
(12.45).round() //returns 12
(12.45).round(1) //returns 12.5
(12.45).round(-1) //returns 10
//toInt 將數字轉為數字,并以給出的基準進制進行轉換
(111).toInt();//returns 111
(111.1).toInt();//returns 111
(111).toInt(2);//returns 7
//toFloat 將數字轉為浮點數
(111).toFloat();//returns 111
(111.1).toFloat();//returns 111.1
//常用數學方法
/* abs
acos
asin
atan2
ceil
cos
exp
floor
log
max
min
pow
sin
sqrt
tan
*/
(-1).abs();//returns 1
(3).pow(4);//returns 81
Array:
//常見的Array格式
var arr=[1,2,3,4];
var arr=new Array(1,2,3,4);
//Array.each 循環遍歷數組
var arr=['Sun','Mon','Tue'];
Array.each(arr,function(day,index){
alert('name:'+day+',index:'+index);
});
//every 如果數組中的每一項都通過了給定函數的測試,則返回true
var arr=[10,4,25,100];
var areAllBigEnough=arr.every(function(item,index){
return item > 20;
});
//clean 在現有數組的基礎上建立一個新數組,每一個成員必須是已經定義過的,IE瀏覽器則必須是非null和非undefined的
var myArray=[null,1,0,true,false,'foo',undefined,''];
myArray.clean() //returns [1,0,true,false,'foo',''];//false也是合法的,因為他也是已經定義過的
//indexOf 返回數組中和給出參數值相等的項的索引號;如果未找到相等的項,則返回-1
['apple','lemon','banana'].indexOf('lemon');//returns 1
['apple','lemon'].indexOf('banana');//returns -1
//map 調用外部函數循環處理現有數組內的每個項目,并產生新數組
var timesTwo=[1,2,3].map(function(item,index){
return item * 2;
});//timesTwo=[2,4,6];
//some 如果數組中至少有一個項通過了給出的函數的測試,則返回true
var isAnyBigEnough=[10,4,25,100].some(function(item,index){
return item > 20;
});//isAnyBigEnough=true
//flatten 把多維數組轉換為一維數組
var myArray=[1,2,3,[4,5,[6,7]],[[[8]]]];
var newArray=myArray.flatten();//newArray is [1,2,3,4,5,6,7,8]
//empty 清空數組
var myArray=['old','data'];
myArray.empty();//myArray is now []
//erase 從數組內移除一個項目
['Cow','Pig','Dog','Cat','Dog'].erase('Dog') //returns ['Cow','Pig','Cat']
['Cow','Pig','Dog'].erase('Cat') //returns ['Cow','Pig','Dog']
//getRandom 從數組內隨機提取鍵值
['Cow','Pig','Dog','Cat'].getRandom();//returns one of the items
//append 合并數組,新數組追加到末尾
var myOtherArray=['green','yellow'];
['red','blue'].append(myOtherArray);//returns ['red','blue','green','yellow'];
myOtheArray;//is now ['red','blue','green','yellow'];
[0,1,2].append([3,[4]]);//[0,1,2,3,[4]]
//contains 測試指定項是否在數組中存在
['a','b','c'].contains('a');//returns true
['a','b','c'].contains('d');//returns false
Object:
//常見的Object格式
var O={a:0,b:1};
//each 遍歷
var O={first:'Sunday',second:'Monday',third:'Tuesday'};
Object.each(O,function(value,key){
alert('The '+key+' day of the week is '+value);
});
//merge 合并一組Obj生成新Obj
var obj1 ={a:0,b:1};
var obj2 ={c:2,d:3};
var obj3 ={a:4,d:5};
var merged=Object.merge(obj1,obj2,obj3);//returns{a:4,b:1,c:2,d:5},(obj2,and obj3 are unaltered)
merged === obj1;//true,obj1 gets altered and returned as merged object
var nestedObj1 ={a:{b:1,c:1}};
var nestedObj2 ={a:{b:2}};
var nested=Object.merge(nestedObj1,nestedObj2);//returns:{a:{b:2,c:1}}
//append 合并Obj,追加到尾部
var firstObj ={
name:'John',
lastName:'Doe'
};
var secondObj ={
age:'20',
sex:'male',
lastName:'Dorian'
};
Object.append(firstObj,secondObj);
//firstObj is now:{name:'John',lastName:'Dorian',age:'20',sex:'male'};
//subset 從Obj內獲取子集
var object ={
a:'one',
b:'two',
c:'three'
};
Object.subset(object,['a','c']);//returns{a:'one',c:'three'}
//map 調用外部函數循環處理現有Obj內的每個項目,并產生新Obj
var myObject ={a:1,b:2,c:3};
var timesTwo=Object.map(myObject,function(value,key){
return value * 2;
});//timesTwo now holds an object containing:{a:2,b:4,c:6};
//keys 返回Obj內所有的key成為一個數組
var myObject ={e:10,b:4,c:25,d:100};
var keys=Object.keys(myObject);
alert(keys)
//values 返回Obj內所有的value成為一個數組
var myObject ={e:10,b:4,c:25,d:100};
var keys=Object.values(myObject);
alert(keys)
//getLength 返回Obj的元素個數
var myObject ={
name:'John',
lastName:'Doe'
});
Object.getLength(myObject);//returns 2
//keyOf 根據value查詢Obj內的key的名稱;如果未找到相等的項,則返回false
var myObject ={a:'one',b:'two',c:3};
Object.keyOf(myObject,'two');//returns 'b'
Object.keyOf(myObject,3);//returns 'c'
Object.keyOf(myObject,'four');//returns false
//contains 測試Obj內是否存在某個值
var myObject ={a:'one',b:'two',c:'three'};
Object.contains(myObject,'one');//returns true
Object.contains(myObject,'four');//returns false
//toQueryString 把Obj內的項目轉換為Url地址,然后URIencode
Object.toQueryString({apple:'red',lemon:'yellow'});//returns 'apple=red&lemon=yellow'
Object.toQueryString({apple:'紅色',lemon:'yellow'});//apple=%E7%BA%A2%E8%89%B2&lemon=yellow
Object.toQueryString({apple:'red',lemon:'yellow'},'fruits');//returns 'fruits[apple]=red&fruits[lemon]=yellow'
JSON:
//常見的Json格式
var J={"_5":"停","_4":"Wi","_3":"