对于上面这几个方法,本人经常性的懵逼,不得不上网百度,这次有时间,就来个整理记忆:
先来说下slice()和splice()
1:slice(数组):有两个参数,第一个参数为检索开始的位置,第二个为要取得最后一个位置+1(可选),不改变原数组;
var arr = [1,2,3,4,5,6]; //只传入参数一,由参数一位置开始截取,一直到结尾 arr.slice(2);//3,4,5,6, //只传入一个参数,但参数为负数,arr.length会与参数相加,为了方便理解,一般的我们默认倒数第一个为-1; arr.slice(-2);//5,6 //两个参数都为正 arr.slice(1,3);//2,3,4; //一负一正,负数会先和arr.length相加 arr.slice(2,-3);//3,4; //当传入一个负数,并且绝对值大于length,那么会截取整个数组; arr.slice(-7);//1,2,3,4,5,6 //当传入一个正数,大于length,则返回空; arr.slice(7);//[]
2:splice(数组):有三个参数,start,deleteCount,item,其中item为替换的新元素,可以为多个,特别注意的是:spice方法改变原数组;
var arr = [1,2,3,4,5,6]; arr.splice(2,2,5,6); console.log(arr);//1,2,5,6,5,6
3:slice(字符串):
var arr = "It is a demo"; var newArr = arr.slice(1,4); console.log(newArr);//t i(空格算一个字符);
4:split(字符串):有两个参数:separator,limit(分离数量),不改变原数组!
var arr = "Itisademo"; var newArr =arr.split("",2); console.log(newArr);//"I", "t"
//
再来说下number(),parseInt()和parseFloat();
ps:number()属于强制类型转换,而parseInt()和parseFloat()则属于转换函数,此外还有js弱变量类型转换一共三种字符串转数值方法;
这里提一下,但是不建议使用的js弱变量类型转换(利用了js弱类型语言的特点);
1 var a = "2213"; 2 var b = a - 2; 3 console.log(b);// a = 2212;
1:number():
Number(false) 0 Number(true) 1 Number(undefined) NaN Number(null) 0 Number( "1.2 ") 1.2 Number( "1.2.2") NaN Number(new Object()) NaN Number(100) 100 //与parseInt()和parseFloat()不同的是,number()是进行整体转换。在判断字符串整体不能转换为数字,会返回NaN;如果可以,则判断使用parseInt()和parseFloat()
2:parseInt():有两个参数,第一个为字符串,第二个为进制;
parseInt("222asas") //222; parseInt("AF",16) //175;
parseInt("22.22") //22
3:parseFloat():只有十进制形式;
1 parseFloat("222asas") //222; 2 parseFloat("22.22") //22.22; 3 parseFloat("22.22.22") //22.22.22,只会识别第一个小数点