《JavaScript 语言精粹》 学习笔记 —— 第八章 方法


第八章 方法

8.1、Array
array.concat(item...)
,返回一个新数组(浅拷贝),是由把指定的所有参数添加到array中构成的。
注1:可有1个或多个参数,如果参数是数组,数组的每个元素会被分别添加。
注2:它不修改array,返回的是一个新数组。
例子:
a.concat(4,[5, [6,7]]);    // Returns [1,2,3,4,5,[6,7]]
array.join(separator),返回一个字符串,用 separator 分隔符把它们连接在一起。默认分隔符是半角逗号','。
array.pop(),返回 array 中最后一个元素,并移除它,数组长度减1。
注:如果 array 是空的,则不改变 array,返回undefined。
例子:
方法pop()和它的伴随方法push()可以提供先进后出(FILO)栈的功能:
var stack = [];    // stack: []
stack.push(1, 2);  // stack: [1,2]    Return 2
stack.pop();       // stack: [1]    Return 1
stack.push(4, 5);  // stack: [1,[4,5]]    Return 2
stack.pop();       // stack: [1]    Return [4,5]
stack.pop();       // stack: []    Return 1
array.push(item...),返回 push 后新数组的长度,它将一个或多个参数 item 附加到 array 的尾部。
注1:该方法不创建新的数组,而是直接修改原有的array。
注2:如果 item 是数组,会将参数数组作为单个元素添加之(此与concat不同)。
array.reverse(),返回反转后的 array 数组。
注1:它在原数组上实现这一操作作为替代:重排指定的array的元素,但并不创建新数组。
注2:如果对array有多个引用,那么通过所有引用都可以看到数组元素的新顺序。
array.shift(),返回 array 中第一个元素,并移除它,并且将余下的所有元素前移一位,以填补数组头部的空缺。
注1:如果 array 是空的,将不进行任何操作,返回undefined。
注2:shift 通常比 pop 慢很多。
注3:该方法不创建新的数组,而是直接修改原有的array。
array.slice(start, end),返回一个浅复制后的新数组(不包括array[end]元素)。它对 array 中的一段作浅复制,第一个被复制的元素是 array[start],一直复制到 array[end]。
注1:start如果是负数,为从数组尾部开始算起的位置。也就是说-1指最后一个元素,-2指倒数第二个元素,以此类推。
注2:end如果没有指定,默认为 array.length,即切分的数组包含从start开始到数组结束的所有元素。如果这个参数是负数,它声明的是从数组尾部开始算起的元素。
注3:返回的新数组不包括array[end]。
注4:如果 start 大于 array.length,返回一个空数组。
注5:该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice()。
注6:在Internet Explorer 4中,参数start不能为负数。这在IE的最新版本中已经更正。
例子:
var a = [1,2,3,4,5];
a.slice(0,3);    // Return [1,2,3]
a.slice(3);    // Return [4,5]
a.slice(1,-1);    // Return [2,3,4]
a.slice(-3,-2);    // Return [3]; buggy in IE 4: return [1,2,3]
array.sort(compareFn),对数组 array 的内容按比较函数进行排序,它不能正确地给一组数字进行排序。
注1:javascript默认的比较函数假定所有要被排序的元素都是字符串,所以比较的时候会将其先转化成字符串;
注2:比较函数接受两个参数,如果两个参数相等则返回0,如果第一个参数应该排列在前面,则返回一个负数,如果第二个参数应该排列在前面,则返回一个正数。
例子:
var n = [4, 8, 15, 16, 23, 42];
n.sort(); // n 是 [15, 16, 23, 4, 42, 8]
n.sort(function() {
return a - b;
});
// n 是 [4, 8, 15, 16, 23, 42];
array.splice(start, deleteCount, item...),从数组 array 中删除1个或多个元素,并用心的item代替它们。返回一个包含移除元素的数组。
例子:
var a = ['a', 'b', 'c'];
var r = a.splice(1, 1, 'ache', 'bug');
// a 是 ['a', 'ache', 'bug', 'c'];
// r 是 ['b'];
array.unshift(item...),像 push 方法一样用于将元素添加到数组中,但它是把 item 插入到 array 的开始部分而不是尾部。它返回 array 的新的长度值。
例子:
var a = ['a', 'b', 'c']; // a 是 ['?', '@', 'a', 'b', 'c']
var r = a.unshift('?', '@'); // r 是5
8.2、Function
function.apply(thisArg, argArray),此方法调用函数 function,传递一个将被绑定到 this 上的对象和一个可选的参数数组。apply 方法被用在 apply 调用模式中。
8.3、Number
number.toExponential(fractionDigits),把 number 转换成一个指数形式的字符串。 可选参数 fractionDigits 控制其小数点后的数字位数。它的值必须在 0 至 20 之间。
document.writeln(Math.PI.toExponential(0)); // 3e+0
document.writeln(Math.PI.toExponential(2));  // 3.14e+0
document.writeln(Math.PI.toExponential(7));  // 3.1415927e+0
document.writeln(Math.PI.toExponential(16)); // 3.1415926535897930e+0
document.writeln(Math.PI.toExponential());  // 3.141592653589793e+0
number.toFiexd(fractionDigits),把 number 转换成一个十进制数形式的字符串。可选参数 fractionDigits 控制其小数点后的数字位数。它的值必须在 0 至 20 之间。默认为0:
document.writeln(Math.PI.toFixed(0)); // 3
document.writeln(Math.PI.toFixed(2));  // 3.14
document.writeln(Math.PI.toFixed(7));  // 3.1415927
document.writeln(Math.PI.toFixed(16)); // 3.1415926535897930
document.writeln(Math.PI.toFixed());  // 3
number.toPrecision(precision),把 number 转换成一个十进制形式的字符串。可选参数 precision 控制有效数字的位数。它的值必须在 0 到 21 之间。
document.writeln(Math.PI.toPrecision(2));  // 3.1 
document.writeln(Math.PI.toPrecision(7));  // 3.141593 
document.writeln(Math.PI.toPrecision(16)); // 3.141592653589793 
document.writeln(Math.PI.toPrecision());  // 3.141592653589793
number.toString(radix),将 number 转换成一个字符串。可选参数 radix 是控制基数。它的值必须在 2 和 36 之间。默认 radix 是以 10 为基数的。
document.writeln(Math.PI.toString(2));  // 11.001001000011111101101010100010001000010110100011
document.writeln(Math.PI.toString(8));  // 3.1103755242102643 
document.writeln(Math.PI.toString(16)); // 3.243f6a8885a3
document.writeln(Math.PI.toPrecision());  // 3.141592653589793 
8.4、Object
object.hasOwnProperty(name),如果这个 object 包含了一个名为 name 的属性,返回 true。
注1:原型链中同名属性是不会被检查的。
注2:对 name 就是 hasOwnProperty 时不起作用, 此时会返回 false。
8.5、RegExp
regexp.exec(string)
,exec 方法使用正则表达式的最强大(和最慢)的方法。如果它成功地匹配 regexp 和字符串 string,它会返回一个数组。数组中下标为 0 的元素将包含正则表达式 regexp 匹配的子字符串。下标为 1 的元素是分组 1 捕获的文本,下标为 2 的元素是分组 2 捕获的文本,以此类推。如果匹配失败,返回 null。
regexp.test(string),test 方法使用正则表达式的最简单(和最快)的方法。如果它成功地匹配 regexp 和字符串 string,它返回 true。不要对这个方法使用 g 标识。
8.6、String
string.charAt(pos),返回在 string 中 pos 位置处的字符。pos 小于 0 或大于等于字符串的长度,返回空字符串。
string.charCodeAt(pos),返回在 string 中 pos 位置处的字符码位。pos 小于 0 或大于等于字符串的长度,返回NaN。
string.indexOf(searchString, position),在 string 中查找另一个字符串 searchString。如果它被找到,则返回第一个被匹配字符的位置,否则返回-1。position 表示查找的起始位置。
string.lastIndexOf(searchString, position),与 indexOf 方法类型,但它是从该字符串的末尾开始查找。
string.localeCompare(that),比较两个字符串。如果 string 比 that 小,结果为负数。如果他们相等,结果为0。
string.match(regexp),它匹配一个字符串和一个正则表达式。它依据 g 标识来决定如何进行匹配。如果没有 g 表示,那么调用 string.match(regexp) 的结果与调用 regexp.exec(string)的结果相同。然而,如果 regexp 带有一个 g 标识,那么它返回一个包含除捕获分组之外的所有匹配的数组。
string.replace(searchValue, replaceValue),对 string 进行查找和替换操作,并返回一个新的字符串。
注1:searchValue 可以是一个字符串或一个正在表达式。
注2:如果 searchValue 是一个正则表达式并且带有 g 标志,那么它将替换所有匹配之处。如果没有,仅替换第一个匹配之处。
注3:replaceValue 可以是一个字符串或一个函数。如果 replaceValue 是一个字符串,字符 $ 拥有特别的含义:

  $$:     $

  $&:     整个匹配的文本
  $number:  分组捕获的文本
  $`:      匹配之前的文本
  $':      匹配之后的文本
如果 replaceValue 是一个函数,此方法将对每个匹配依次调用它,并且该函数返回的字符串将被用作替换的文本。传递给这个函数的第一个参数是整个被匹配的文本。第二个参数是分组 1 捕获的文本,下一个参数是分组 2 捕获的文本,以此类推。
string.slice(start, end),slice 方法复制 string 的一部分来构造一个新的字符串。
注1:如果 start 参数是负数,它将与 string.length 相加。
注2:end参数是可选的,它的默认值是 string.length。
注3:如果 end 参数是负数,它将与 string.length 相加。
string.split(separator, limit),split 方法把这个 string 分隔成片段来创建一个字符串数组。
注1:limit 可以限制被分割的片段数量。
var digits = '0123456789';
var a = digits.split('', 5);
// a 是 ['0', '1', '2', '3', '456789']
注2:separator 参数可以是一个字符串或一个正则表达式。
string.substring(start, end),和 slice 方法一样,只是它不能处理负数参数。没有任何理由使用 substring 方法,建议用 slice 替代。
string.toLocaleLowerCase(),返回一个使用本地化规则把 string 中的所有字母转换为小写格式。
注:这个方法主要用在土耳其语上,因为在土耳其语中'I'转换为'1',而不是'i'。
string.toLocaleUpperCase(),返回一个使用本地化规则把 string 中的所有字母转换为大写格式。也是主要用在土耳其语上。
string.toLowerCase(),返回一个所有字母都变为小写的新字符串。
string.toUpperCase(),返回一个所有字母都变为大写的新字符串。
string.fromCharCode(char...),从一串数字中返回一个字符串。
var a = String.fromCharCode(67, 97, 116); // a 是 'Cat'

小结:这一章中主要介绍了JavaScript中6大对象基本所拥有的基本方法,比较系统,也枯燥无味!


转载请注明出处:http://blog.csdn.net/xxd851116/article/details/7710004

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值