ES5的一些常用方法
ES5:
1.严格模式:
调用方法: "use strict" ;
作用范围:全局模式:放在脚本文件的第一行,则整个脚本文件都将以“严格模式”运行。
局部模式:将"use strict"放到函数内的第一行。
严格模式的语法要求:
① 必须用var声明变量
"use strict";
a = 10;
console.log(a); //报错
②函数内不允许出现重名参数
"use strict";
function fn(a,b,b){
console.log(a);
console.log(b);
}
fn(2,3,4) //报错
③this无法指向全局变量window
"use strict";
function fn(){
console.log(this);
}
fn(); //undefined
④arguments对象不允许被动态改变
"use strict";
function fn(a,b){
a = 20;
console.log(a);
console.log(b);
console.log(arguments); //2,3
}
fn(2,3)
2.ES5新增数组常见方法:
①indexOf:
语法: arr.indexOf(item,start);
返回数组中某个元素的位置,没有找到指定元素返回-1.
lastIndexOf():从后面往前找,返回某个元素的首次出现的位置。
var arr=[1,2,3,4,5,2]
console.log(arr.indexOf(2)); //1
console.log(arr.lastIndexOf(2)); //5
console.log(arr.indexOf(6)); //-1
②forEach:
语法: array.forEach(function(value,index,arr));
用于调用数组的每个元素,并将元素传递给回调函数,没有任何返回值。
回调函数内的三个参数分别为:当前循环的值(必选),当前循环的索引(可选),当前数组本身(可选)。
var arr = ["a","b",255,512,"hello"];
var a = arr.forEach(function(value,index){
console.log(value); //a b 255 512 hello
console.log(index); //0 1 2 3 4
})
console.log(a); //undefined
③map:
语法: array.map(function(value,index,arr));
返回一个被操作后的新数组,不会改变原数组,一般配合return使用.
var arr=[1,2,3,4,5]
var arr2=arr.map(function(value){
return value+5;
})
console.log(arr); //1,2,3,4,5
console.log(arr2); //6,7,8,9,10
④filter:
语法: array.filter(function(value,index,arr));
过滤不符合条件的元素,如果回调函数返回true则保留,返回false则过滤掉。不会改变原数组
arr3=arr2.filter(function(value){
return value>7
})
console.log(arr2); //6,7,8,9,10
console.log(arr3); //8,9,10
3.字符串常见API
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数
①indexOf(date,start)
用于返回字符串中规定字符的位置,返回字符所在位置的下标,若无返回-1.
var str="helloworld";
console.log(str.indexOf("o")); //4
②charAt(index); 返回指定位置(下标)的字符
var str="helloworld";
console.log(str.charAt("2")); //l
③substring(n,m) 返回从指定位置,到结束位置(不含)的字符串。
console.log(str.substring(1,8)) //ellowo
④slice(n,m); 同substring
substring(n,m)和slice(n,m)的区别:
console.log(str.slice(-3)); //rld
console.log(str.substring(-3)); //helloworld
console.log(str.slice(3,-4)); //low
console.log(str.substring(3,-4)); //hel
slice将传入负值与字符串长度(string.length)相加,可以操作数组;substring会将所有负值都转换成0,不可以操作数组。
⑤split("");通过指定字符分割字符串,返回一个数组。
var str="1,2,3,4,5,6,7";
var arr=str.split(",");
console.log(arr); //["1", "2", "3", "4", "5", "6", "7"]
⑥replace("需要替换的字符串","替换之后的字符串") ,默认只替换一次
var str="1,2,3,4,2,6,7,2";
var str2=str.replace(2,5);
console.log(str2); //1,5,3,4,2,6,7,2
var str3=str.replace("/2/g",5); //g为正则修饰符,表示全局匹配
console.log(str3); //1,5,3,4,5,6,7,5