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 方法

round.png

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

abs 取绝对值


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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,407评论 0 20
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 2,059评论 1 24
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,280评论 0 4
  • 从小到大,一直是“好好读书,天天向上”的好孩子榜样。读书的时候心思很单纯,就是自己想要好好读书,好好做好自己分内的...
    薯片君嚼不碎阅读 586评论 0 0
  • select for update 原子性来限制, memcache add 原子性 敏感资源,记录日志,不要回滚...
    yeqingwen阅读 236评论 0 1