字符串函數(shù)
str.length
可以讀取長度 但是不能添加字符
var str = "1245";
str.length // 4位長度
str.charAt()
var str = "abc";
char ch = str.charAt(0);
char ch2 = str.charAt(1);
這時候ch是a替裆,ch2是b;
str.charCodeAt()
charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼旬牲。這個返回值是 0 - 65535 之間的整數(shù)称诗。方法 charCodeAt() 與 charAt() 方法執(zhí)行的操作相似嵌溢,只不過前者返回的是位于指定位置的字符的編碼,而后者返回的是字符子串肢执。
字符串截取
substr() 第一個是開始位置肌毅,第二個是長度
substring() 第一個開始位置 第二個結(jié)束位置
slice() 同數(shù)組的slice一樣
字符串的查找(和正則一起說明)
str.search();
str.replace();
str.match();
字符串大小寫
toUpperCase(); 字符串全部轉(zhuǎn)化為大寫
toLowerCase(); 字符串全部轉(zhuǎn)化為小寫
Math 對象
round 方法
它對于負(fù)值的運(yùn)算結(jié)果與正值略有不同,主要體現(xiàn)在對.5的處理
abs 取絕對值
max方法返回最大的參數(shù)筐喳,min方法返回最小的參數(shù)
Math.max(2, -1, 5) // 5
Math.min(2, -1, 5) // -1
floor 方法返回小于參數(shù)值的最大整數(shù)
Math.floor(3.2) // 3
Math.floor(-3.2) // -4
ceil方法返回大于參數(shù)值的最小整數(shù)
Math.ceil(3.2) // 4
Math.ceil(-3.2) // -3
取出最小值
var arr = [2,6,90,40,356,-9,-10000];
function min(arr){
var min = arr[0];
for(var i = 1 ; i < arr.length ; i++){
if(min > arr[i]){
min = arr[i];
}
}
return min;
}
console.log(min(arr));
以上結(jié)果等同于 Math.min.apply(null/{},arr);
取出最大值 則相反的寫法
var arr = [2,6,90,40,356,-9,-10000];
function max(arr){
var max = arr[0];
for(var i = 1 ; i < arr.length ; i++){
if(max < arr[i]){
max = arr[i];
}
}
return max;
}
console.log(max(arr));
以上結(jié)果等同于 Math.max.apply(null/{},arr);
random
返回給定范圍內(nèi)的隨機(jī)數(shù)
/*
寫一個函數(shù),獲取從min都max之間的隨機(jī)整數(shù)函喉,包括min包括max (***)
*/
function max_random(min,max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
ES5 數(shù)組擴(kuò)展
Array.isArray()
這是Array對象的一個靜態(tài)函數(shù)避归,用來判斷一個對象是不是數(shù)組
function isArray(arr){
return Array.isArray ? Array.isArray(arr) : (typeof arr === "object") && (arr instanceof Array);
}
var a = new Array(123);
var b = new Date();
console.log(Array.isArray(a)); //true
console.log(Array.isArray(b)); //false
indexOf() lastIndexOf()
顧名思義,這兩個方法用于查找數(shù)組內(nèi)指定元素位置管呵,查找到第一個后返回其索引梳毙,沒有查找到返回-1,indexOf從頭至尾搜索捐下,lastIndexOf反向搜索账锹。
var a = new Array(1,2,3,3,2,1);
console.log(a.indexOf(2)); //1
console.log(a.lastIndexOf(2)); //4
forEach(function(e,i,array)){
e : 當(dāng)前元素
i : 當(dāng)前元素索引值
array:整個數(shù)組
}
var a = new Array(1,2,3,4,5,6);
a.forEach(function(e,i,array){
array[i]= e + 1;
});
console.log(a); //[2, 3, 4, 5, 6, 7]
every 與 some
這兩個函數(shù)類似于離散數(shù)學(xué)中的邏輯判定,回調(diào)函數(shù)返回一個布爾值
every是所有函數(shù)的每個回調(diào)函數(shù)都返回true的時候才會返回true坷襟,當(dāng)遇到false的時候終止執(zhí)行奸柬,返回false。some函數(shù)是“存在”有一個回調(diào)函數(shù)返回true的時候終止執(zhí)行并返回true婴程,否則返回false廓奕。
var a=new Array(1,2,3,4,5,6);
console.log(a.every(function(e, i, arr){
return e < 5;
}));
console.log(a.some(function(e,i,arr){
return e > 4;
}));
在空數(shù)組上調(diào)用every返回true,some返回false
map 和 forEach 類似
與forEach類似档叔,遍歷數(shù)組桌粉,回調(diào)函數(shù)返回值組成一個新數(shù)組返回,新數(shù)組索引結(jié)構(gòu)和原數(shù)組一致衙四,原數(shù)組不變
var a = new Array(1,2,3,4,5,6);
console.log(a.map(function(e){
return e * e;
})); // [1, 4, 9, 16, 25, 36]
console.log(a); //[1, 2, 3, 4, 5, 6]
arr.map(function(e){
return e*e;
})
filter
返回?cái)?shù)組的一個子集铃肯,回調(diào)函數(shù)用于邏輯判斷是否返回,返回true則把當(dāng)前元素加入到返回?cái)?shù)組中传蹈,false則不加押逼。新數(shù)組只包含返回true的值,索引缺失的不包括卡睦,原數(shù)組保持不變宴胧。
var a = new Array(1,2,3,4,5,6);
console.log(a.filter(function(e){
return e % 2 == 0;
})); // [2, 4, 6]
console.log(a); //[1, 2, 3, 4, 5, 6]
.reduce 和 reduceRight
遍歷數(shù)組,調(diào)用回調(diào)函數(shù)表锻,將數(shù)組元素組合成一個值恕齐,reduce從索引最小值開始,reduceRight反向,方法有兩個參數(shù)
回調(diào)函數(shù):
1. 把兩個值合為一個显歧,返回結(jié)果
2. value仪或,一個初始值,可選
var a = new Array(1,2,3,4,5,6);
console.log(a.reduce(function(v1, v2){
return v1 + v2;
})); // 21
console.log(a.reduceRight(function(v1, v2){
return v1 - v2;
}, 100)); // 79