Javascript 字符串函数 数学函数 ES5 扩展

字符串函数

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 之间的整数。方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

charCodeAt().png

字符串截取
substr() 第一个是开始位置,第二个是长度
substring() 第一个开始位置 第二个结束位置
slice() 同数组的slice一样

字符串的查找(和正则一起说明)
str.search();
str.replace();
str.match();

字符串大小写
toUpperCase(); 字符串全部转化为大写
toLowerCase(); 字符串全部转化为小写

Math 对象

round 方法

Javascript 字符串函数 数学函数 ES5 扩展_第1张图片
round.png

它对于负值的运算结果与正值略有不同,主要体现在对.5的处理

abs 取绝对值


Javascript 字符串函数 数学函数 ES5 扩展_第2张图片
abs.png

max方法返回最大的参数,min方法返回最小的参数

Math.max(2, -1, 5) // 5
Math.min(2, -1, 5) // -1

floor 方法返回小于参数值的最大整数

Math.floor(3.2) // 3
Math.floor(-3.2) // -4

ceil方法返回大于参数值的最小整数

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));

以上结果等同于 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));

以上结果等同于 Math.max.apply(null/{},arr);

random
返回给定范围内的随机数

/*
写一个函数,获取从min都max之间的随机整数,包括min包括max (***)
*/

function max_random(min,max){
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

ES5 数组扩展

Array.isArray()
这是Array对象的一个静态函数,用来判断一个对象是不是数组

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()
顾名思义,这两个方法用于查找数组内指定元素位置,查找到第一个后返回其索引,没有查找到返回-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 : 当前元素
i : 当前元素索引值
array:整个数组
}

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

这两个函数类似于离散数学中的逻辑判定,回调函数返回一个布尔值
every是所有函数的每个回调函数都返回true的时候才会返回true,当遇到false的时候终止执行,返回false。some函数是“存在”有一个回调函数返回true的时候终止执行并返回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;
}));

在空数组上调用every返回true,some返回false

map 和 forEach 类似

与forEach类似,遍历数组,回调函数返回值组成一个新数组返回,新数组索引结构和原数组一致,原数组不变

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

返回数组的一个子集,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加。新数组只包含返回true的值,索引缺失的不包括,原数组保持不变。

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

遍历数组,调用回调函数,将数组元素组合成一个值,reduce从索引最小值开始,reduceRight反向,方法有两个参数

回调函数:
1. 把两个值合为一个,返回结果
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

你可能感兴趣的:(Javascript 字符串函数 数学函数 ES5 扩展)