常用方法整理
<script type="text/javascript">
//array
//splice(index,howmany,item1,item2...) 会改变原数组 返回被删除的数组
var a =[1,2,3,4,5,6,7,8];
var b = a.splice(1,3);
console.log(a);//[1,5,6,7,8]
console.log(b);//[2,3,4]
//slice(start,end(不包括)) 不会改变原数组的值 返回从start到end的数组
var c =['a','b','c','d','e','f','g'];
var d = c.slice(1,3);
console.log(c);//['a','b','c','d','e','f','g']
console.log(d);//['b','c']
//push(newitem1,newitem2...)在末尾追加 改变原数组 返回新数组的长度
var e =[1,2,3,4,5,6];
var f = e.push(7,8);
console.log(e);//[1,2,3,4,5,6,7,8]
console.log(f);//length 8
//unshift(newitem1,newitem2...)在开头添加一个或者多个元素 直接修改原来的数组 返回值是新数组的长度
var g = [1,2,3];
var h = g.unshift(0);
console.log(g);//[0,1,2,3]
console.log(h);//length 4
//shift()删除数组的第一个值 返回值:第一个元素的值 直接改变原数组
var i = [1,2,3,4,5,6,7];
var j = i.shift();
console.log(i);//[2,3,4,5,6,7]
console.log(j);//删除掉的值1
//pop()该方法删除数组的最后一个元素 如果数组为空不做操作返回undefined如果数组不为空返回被删除的值
var k =[1,2,3,4,5,6,7,8];
var l = k.pop();
console.log(k);//[1,2,3,4,5,6,7]
console.log(l);//8
//concat()用于连接两个或者多个数组 该方法不会改变原来的数组,仅仅会返回被连接数组的一个副本
//arryobject.concat(item1...) item1可以是数组也可以是数值,如果是数组参加合并的是数组的元素
var m = [1,2,3,4,5,6];
var n = [7,8,9];
var o = m.concat(10);
var p = m.concat(n);
var q = m.concat(n,p);
console.log(m);//[1,2,3,4,5,6]
console.log(n);//[7,8,9]
console.log(o);//[1,2,3,4,5,6,10]
console.log(p);//[1,2,3,4,5,6,7,8,9]//没有10,因为m不变
console.log(q);//[1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]
//数组的一些常用方法
//Array.isArray(object) object 必须,为要测试的对象 返回值为布尔值
var r =[1,2,3];
var result = Array.isArray(r);
console.log(result)//true
//join(separator)//separator分隔符可选 可以将一个数组转换成字符串 返回值是字符串
var arr = ["a","b","c"];
var arrstr = arr.join();
console.log(arrstr);//a,b,c
var arrstr1 = arr.join("*");
console.log(arrstr1)//a*b*c
//reverse()将数组中的元素翻转 该方法改变原数组
var ab = [1,2,3,4,5,6];
var cd = ab.reverse();
console.log(ab);//[6,5,4,3,2,1]
console.log(cd);//[6,5,4,3,2,1]
//toString()
var ef = ["arr1","arr2","arr3"];
var gh = ef.toString();
var ig = ef.valueOf();
console.log(ef);//["arr1","arr2","arr3"]
console.log(gh);//arr1,arr2,arr3
console.log(ig);//["arr1","arr2","arr3"]
//String
//charAt(index)可返回指定位置的字符 stringObject.charAt(index)//index必须 字符串的位置
var str = "hello world!";
var chatAt1 = str.charAt(6);
console.log(chatAt1);//w
//charCodeAt(index)返回指定位置字符的Unicode编码
var charCodeAt1 = str.charCodeAt(6);
console.log(charCodeAt1)//119
//fromCharCode(numx,numx,numx)该方法可接受一个指定的Unicode值,然后返回一个字符串。
var fromCharCode1 = String.fromCharCode(72,69,76,76,79);
console.log(fromCharCode1)//HELLO
//str.indexOf(searchString,startIndex);返回子字符串第一次出现的位置,从startIndex开始查找,找不到返回-1
var str = "Hello world!";
var index1 = str.indexOf("Hello");
var index2 = str.indexOf("e");
var index3 = str.indexOf("world");
var index4 = str.indexOf("hello");
console.log(index1)//0
console.log(index2)//1
console.log(index3)//6
console.log(index4)//-1
//str.lastIndexOf(searchString,startIndex);从右向左查找,返回子字符串第一次出现的位置,从startIndex开始查找,找不到返回-1
var index5 =str.lastIndexOf("Hello");
var index6 = str.lastIndexOf("!");
console.log(index5)//0
console.log(index6)//11
// 由于上面两个方法都只能返回一次,当需要讲一段字符串里的所有searchString出现的位置都查找出来,方法如下:
var str ="1234567898888";
var s = "8";
var i =0;
for(;str.indexOf(s,i)!=-1;){
console.log(str.indexOf(s,i));//7,9,10,11,12
i=str.indexOf(s,i)+s.length;
}
//substring(start,stop)该方法用于提取字符串中介于指定下标之间的字符 返回值:一个新字符串,内容为从start到stop-1的所有字符 注意:if start=end,返回值为空字符串 if start>end 提取子字符串之前会交换这两个参数 if start或者end为负数,他们将被替换为0
var str = "Hello world!";
var substring1 = str.substring(3);
var substring2 = str.substring(1,3);
console.log(substring1)//lo world!
console.log(substring2)//el
//substr(start,length)该方法可在字符串中抽取从start下标开始的指定数目的字符 返回值:一个新的字符串,包括从start出开始的lenght个字符,如果没指定length则到结尾 注:start也是可正可负,负值代表从右截取-1表示最后一个字符
var str = "Hello world!";
var substr1 = str.substr(3);
var substr2 = str.substr(3,8);
console.log(substr1);//lo world!
console.log(substr2);//lo world
//slice(start,end)该方法可提取字符串的某个部分,并以新的字符串返回被提取的部分 返回值:一个新的字符串包括从start到end(不包括)为止的所有字符。
// 注:两个参数可正可负,负值代表从右截取
var str="Hello happy world!";
var slice1 = str.slice(6);
var slice2 = str.slice(6,11);
console.log(slice1)//happy world!
console.log(slice2)//happy
//split(separator,howmany);参数1指定字符串或正则,参数2指定数组的最大长度
// 该方法用于把一个字符串分割成字符串数组 返回值:一个字符串数组
var str = "How are you?";
var split1 = str.split(" ");
var split2 = str.split("");
var split3 = str.split("",3);
console.log(split1);//["How","are","you?"]
console.log(split2);//["H","o","w","","a","r","e","","y","o","u","?"]
console.log(split3);//["H","o","w"]
var str1 = "2:3:4:5:6";
var split4 = str1.split(":");
console.log(split4)//["2","3","4","5","6"]
//replace(regexp/substr,replacement)
// 该方法用于在字符串中用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子串 返回值:一个新的字符串,就是用replacement替换了regexp的第一次匹配或所有匹配之后得到的。
var str = "Visit Microsoft!";
var replace1 = str.replace(/Microsoft/,"W3School");
var replace2 = str.replace("Microsoft","Hello");
console.log(replace1);//Visit W3School!
console.log(replace2);//Visit Hello!
//match(searchvalue)或者match(regexp)searchvalue必须,指要检索的字符串值 regexp必须 规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象
// 返回值:存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
var str ="Hello world!";
var match1 = str.match("world");
var match2 = str.match("World");
console.log(match1);//["world"]
console.log(match2);//null
var str = "1 push 2 equal 3";
var match3 = str.match(/\d+/g);
console.log(match3);//["1","2","3"]
// demo:/*利用var s1=prompt("请输入任意的字符串","")可以获取用户输入的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出*/
//接受字符串
var s1=prompt("请输入任意的字符串","");
//字符串转换为数组
var arr=s1.split("");
//利用数组对象的reverse()方法实现反转
arr.reverse();
//利用数组的join()方法转换为字符串
var str=arr.join("");
console.log(str);//翻转后的字符串
</script>