JavaScript Methods

Posted by WunWun on February 11, 2017

JavaScript提供了一套小型的可用在标准类型上的标准方法集。

Array

  • array.concat(item…)

array.concat(item...)方法会产生一个新数组,它包含一份array的浅复制(shallow copy)并把一个或多个参数item附加在其后。如果参数item是一个数组,那么它的每个元素会被分别添加

var a = ['a', 'b', 'c'];
var b = ['x', 'y', 'z'];
var c = a.concat(b, true);
// c为['a', 'b', 'c', 'x', 'y', 'z', true]
  • array.join(separator)

array.join(separator)方法把一个array构造成一个字符串。默认的separator是逗号‘,’。目前在大多数情况下,对字符串连接建议首选使用+运算符,因为相比join方法,+运算符的性能更高。

var a = ['a', 'b', 'c'];
var c = a.join('');    // c为‘abc’
  • array.pop()

pop方法移除array中的最后一个元素并返回该元素。如果array是empty,它会返回undefined。

var a = ['a', 'b', 'c'];
var c = a.pop()    //a 是['a', 'b'];c是'c'
  • array.push(item…)

push方法把一个或多个参数item附加到一个数组的尾部。与concat方法不同的是,该方法会修改array。如果参数item是一个数组,它会把参数数组作为单个元素整个添加到数组中,并返回这个array的新长度值。

var a = ['a', 'b', 'c'];
var b = ['x', 'y', 'z']; 
var c = a.push(b, true)    //a 是['a', 'b', 'c', ['x', 'y', 'z'], true];c是5
  • array.reverse()

reverse方法反转array里的元素的顺序,并返回array本身:

var a = ['a', 'b', 'c'];
var b = a.reverse();
// a和b都是['c', 'b', 'a']
  • array.shift()

shift方法移除数组array中的第1个元素并返回该元素。如果数组array为空,则会返回undefined。shift操作通常要比pop慢得多.

var a = ['a', 'b', 'c'];
var c = a.shift();    //a是[ 'b', 'c']; c是'a'
  • array.slice(start, end)

slice(start, end)方法对array中的一段做浅复制。

var a = ['a', 'b', 'c'];
var b = a.slice(0, 1);    //['a']
var c = a.slice(1);       //['b', 'c']
var d = a.slice(1, 2);    //['b']
  • array.sort(comparefn)

sort(comparefn)方法对array中的内容进行排序。默认比较函数把要排序的元素都视为字符串。可以使用自己的比较函数来替换默认的比较函数。你的比较函数应该接受两个参数,并且如果这两个参数相等则返回0,如果第1个参数应该排列在前面,则返回一个负数,如果第2个参数应该排列在前面,则返回一个正数。

var n = [4, 18, 15, 16, 23, 42];
n.sort();    //n是[15, 16, 18, 23, 4, 42]
n.sort(function (a, b) {
    return a - b;
});    //n是[4, 15, 16, 18, 23, 42]
  • array.splice(start, deleteCount, item…)

splice(start, deleteCount, item…)方法从array中移除一个或多个元素,并用新的item替换它们。其返回一个包含被移除元素的数组。

var a = ['a', 'b', 'c'];
var r = a.splice(1, 1, 'ache', 'bug');
//a是["a", "ache", "bug", "c"]
//r是["b"]
  • array.unshift(item…)

unshift(item…)方法把元素添加到数组中,但它是把item插入到array的开始部分而不是尾部,返回array的新的length。

var a = ['a', 'b', 'c'];
var r = a.unshift('?', '@');
//a是["?", "@", "a", "b", "c"]
//r是5

Function

  • function.apply(thisArg, argArray)

function.apply(thisArg, argArray)方法调用function,传递一个会被绑定到this上的对象和一个可选的数组作为参数。

Number

  • number.toExponential()

把number转换成一个指数形式的字符串。

Math.PI.toExponential(0);   //  "3e+0"
Math.PI.toExponential(2);   //  "3.14e+0"
Math.PI.toExponential(7);   //  "3.1415927e+0"
Math.PI.toExponential(16);  //  "3.1415926535897931e+0"
Math.PI.toExponential();    //  "3.141592653589793e+0"
  • number.toFixed()

把number转换成一个十进制数形式的字符串。可选参数fractionDigits控制其小数点后的数字位数,必须在0~20之间,默认为0。

Math.PI.toFixed(0);   //  "3"
Math.PI.toFixed(2);   //  "3.14"
Math.PI.toFixed(7);   //  "3.1415927"
Math.PI.toFixed(16);  //  "3.1415926535897931"
Math.PI.toFixed();    //  "3"
  • number.toString()

把number转换成为一个字符串。可选参数radix控制基数,默认为10。

Math.PI.toString(2);   // "11.001001000011111101101010100010001000010110100011"
Math.PI.toString(8);   //  "3.1103755242102643"
Math.PI.toString(16);  //  "3.243f6a8885a3"
Math.PI.toString();    //  "3.141592653589793"

String

  • string.charAt(pos)

string.charAt(pos)方法返回在string中pos位置处的字符。

var name = 'Curly';
var initial = name.charAt(0);    // 'C'
  • string.charCodeAt(pos)

string.charCodeAt(pos)方法返回,以整数形式表示的在string中pos位置处的字符的字符码位。

var name = 'Curly';
var initial = name.charCodeAt(0);    // 67
  • string.indexOf(searchString, position)

string.indexOf(searchString, position)方法在string内查找另一个字符串searchString。如果找到,返回第一个匹配字符的位置,否则返回-1。可选参数position可设置从string的某个指定位置开始查找。

var text = 'Mississippi';
var p = text.indexOf('ss');    // 2
p = text.indexOf('ss', 3);     // 5
p = text.indexOf('ss', 6);     // -1
  • string.lastIndexOf(searchString, position)

string.lastIndexOf(searchString, position)方法和indexOf方法类似,只不过它是从该字符串的末尾开始查找而不是从开头。

  • string.replace(searchValue, replaceValue)

被用来在正则表达式和字符串直接比较,然后用新的子串来替换被匹配的子串。

  • string.slice(start, end)

摘取一个字符串区域,返回一个新的字符串。如果start参数是负数,它将与string.length相加。end参数是可选的,且默认值是string.length。

var text = 'and in it he says "Any damn fool could';
var a = text.slice(18);    //  ""Any damn fool could"
var b = text.slice(0, 3);  //  "and"
var c = text.slice(-5);    //  "could"
  • string.split(separator, limit)

把string分割成片段来创建一个字符串数组。可选参数limit可以限制被分隔的片段数量。

var ip = '192.168.1.0';
var b = ip.split('.');        //  ["192", "168", "1", "0"]

var c = '|a|b|c|'.split('|')  //  ["", "a", "b", "c", ""]

著作权声明

作者 陈兴旺,首次发布于 WunWun Blog,转载请保留以上链接