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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,406评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,976评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,302评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,366评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,372评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,457评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,872评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,521评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,717评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,523评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,590评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,299评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,859评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,883评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,127评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,760评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,290评论 2 342

推荐阅读更多精彩内容

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