我才知道的几个Javascript小知识点
September/2nd 2011

    因为我学习Javascript的过程比较零散,没有仔细系统的看过。有些细节方面就被遗漏了。下面是我最近才搞清楚的几个函数。如果你此前就知道,那么恭喜你,你的JS比我好。如果也不清楚,那么也恭喜你,你看了此文就清楚了。

1. Array 的 slice方法

    slice(start,end)   此方法可从已有的数组中返回位于start和end之间的元素。并且不改变数组本身。start和end参数可以为负数,表示从后面开始数的第几个。

    例如: [1,2,3,4].slice(2,3) 返回[3] , [1,2,3,4].slice(2,-1) 也返回[3] 。

    另外,如果只写一个参数,那么第二个参数默认是数组的长度。也就是说 [1,2,3,4].slice(-2) 返回 [3,4]

2. Array 的 splice 方法

    splice(start,length) 此方法返回现有数组的从start开始的length个元素。并且会改变数组本身。start参数可以为负数。

    例如: var a = [1,2,3,4]; a.splice(2,2) 返回[3,4] ,并且a变成了[1,2] 

    另外,splice还支持第3,4,5...个参数,表示用后面的参数替换掉被删除的元素。

3. String 的 substr 方法

    substr(start,length) 此方法返回字符串从start开始的length个字符。不改变字符串本身。start参数可以为负数。

    例如: "abcd".substr(2,1) 返回 'c',"abcd".substr(-2) 返回 "cd"

4. String 的 substring 方法

    substring(start,end) 此方法返回字符串的start到end之间的字符。不改变字符串本身。start和end参数不能为负数!但是start可以比end小。

    例如:"abcd",substring(1,3) 和 "abcd".substring(3,1) 都返回 "bc"

表格对比

  参数 参数是否支持负数 是否改变对象本身
Array.slice (start,end) Yes No
Array.splice (start,length) Yes Yes
String.substr (start,length) Yes No
String.substring (start,end) No No

 

    此外,删除对象的某个属性用delete 操作符。

    例如: var o = {"a":1,"b":2}; delete o.a; 那么o就变成 {"b":2}

    但是如果要删除数组的某个元素,就要用上面提到的splice方法了。

    例如: var a = [1,2,3,4]; delete a[1]; 那么a就变成[1,undefined,3,4],并且a.length还是4。 必须要用a.splice(1,1)。

    还有Array.pop, Array.shift, Array.push, Array.unshift等常用方法就不说了。



12185 read 10 comment(s)
#1
青岛葡萄酒   2011年09月02号 10:56       回复
过来看看滴 ~~~
#2
金顺道物流   2011年09月02号 10:56       回复
来转转 关注下了
#3
b2b平台   2011年09月02号 14:10       回复
路过 来关注一下了
#4
b2b平台   2011年09月02号 14:10       回复
路过 来关注一下了
#5
网站优化   2011年09月04号 18:11       回复
知识比较多啊。博客不错。
#6
宇博   2011年09月04号 18:59       回复
即使知道,也不一定比你的JS技术好,支持开发的时候都用到过
#7
18ge   2011年09月14号 00:51       回复
JS很有前途,好好学习了
#8
the black friday ads   2011年11月20号 20:59       回复
好喜欢啊  嘻嘻 
#9
the black friday ads   2011年11月20号 20:59       回复
真可爱的说  哈哈
#10
hzc   2013年04月17号 22:14       回复
String.substring,start和end参数不能为负数的测试情况如下:var a="asdf"   a.substring(-2,1);输出了a,可以有一个为负数,但不能同时为负数,否则输出为空.
添加新的评论
称呼:*
邮件:*
网站:
内容:

Copyright © Longbill 2008-2017 , Designed by EndTo , Powered by EndCMS