删除数组中的元素
你或许已经知道,js中要向数组中增加元素,需要用的是push方法。没有和其他语言中类似的add方法,是不是很不适应?
但是要是告诉你,从数组中删除元素的方法没有,你是不是简直不敢相信!你如果要说用到delete关键字,那么给你看一个吓死你的:
var s=[1,2,3,4];
delete s[1];
这样操作之后,你猜猜操作结果是怎样的?
不买关子,结果是这样的:
[1,udefind * 1,3,4]
被删除的元素,其实只是将这个元素的值删除了,但是并没有改变这个数组。即没有把这个数组变成[1,3,4],而如果需要变成这样,则需要用到splice方法:
s.splice(1,1);
关于更多,请查看 文档。
注意:splice方法的本意就是拼接,替换元素。这里用到完成删除,只是将拼接的第三个参数为空,达到目的。
严格模式
'use strict';
不知你是否看到别人写带js文件,第一行总是出现这一行匿名的字符串。这其实是ECMAscript 5中引入的严格模式!
传统的js代码执行模式,也就是你不在第一行声明这个匿名字符串时,是正常模式。这个模式中有很多Javascript非常灵活的特性(也非常蛋疼)。比如,如果一个变量没有使用var关键字申明,则是一个全局变量。很让人容易错乱的语法糖。
更多相关内容,查看。
geter&seter
js的对象也是有geter和seter,这种方式可以灵活的运用到,比如当一个属性只是可读的。这时便可以使用geter方法来取的元素。
下面是一个geter和seter的例子:
var obj = {
_x : 1,
get getX(){
return this._x;
},
set setX(x){
this._x = x;
}
};