JS的系统内置对象
JS里有许多系统内置的对象,他们有着十分广阔的用途,今天就来说两个
Function函数对象,这个应该是最熟悉的,毕竟JS个人觉得就是写方法,自然离不开function
var t = function (x, y) {
alert(x + y);
}
t = function (x, y) {
alert(x * y);
}
t(2, 3); 6
var m = new Function("x", "y", "alert(x+y);") //这个地方看起来很诡秘吧,说实话理解起来还不如上面的变量形写法呢
m(5,5); 10
String对象
var s = new String("asdfasdf");
var s1 = "asdfasdf";
说白了这2种写法基本上是一样的,不然的话单凭它一个s1的变量就可以调用字符串的所有操作方法吗?开玩笑!
RegExp对象
var exp = /^a/g;
var e1 = new RegExp("^a", "g");
以上2种写法是一样的,但是一定要注意第二种写法的第一个参数是没有 / /的,太坑了,另外 i 不区分大小写 g匹配所有的
var s = "asdf";
if (s.match(e1)) {
s=s.replace(exp, "1"); 使用replace的时候第一个参数是正则的模式,用那2种方式都可以,第二个参数是要替换的内容,另外一定要replace的结果赋值给变量,不然原来的str是不会改变的
alert(s);
}
else {
alert(2);
}
数组对象,这个一定不陌生,但是我肯定还有一些不知道的数组知识,先来个简单点的数组
var arr = ["1", 2, false, "3"]; //虽然这个里面的元素什么类型的都有,不过最好还是一致的元素类型
for (var i = 0; i < arr.length; i++)
{
alert(arr[i]);
}
接下来来个厉害的,自定义一个数组对象
如果说我想实例化一个自定义的数组对象,然后对里面的元素进行操作呢,向下面这样的,
var arr = new MyArray("q", "w", "e");
alert(arr.length);
arr[1] = "r"
alert(arr[1]);
那么这个自定义的MyArray就显得格外的牛逼了,看好了
function MyArray()
{
this.length = arguments.length;
for (var i = 0; i < arguments.length; i++)
{
this[i] = arguments[i]; // this.后面的都是属性,如果想把变量变成属性只能 this[i]
}
this.sort=function(){}
}
我觉得好6 啊,哈哈
你有没哟发现好眼熟啊,没错,系统提供的数组对象的原理就是这样的,
var arr=new Array("1","2","3");
var arr=new Array(10); 长度为10 的数组
真是不知不觉间就学会了哈,原来Array是这么回事啊
接下来介绍一下数组的一些方法,挺重要的
var arr = ["q", "w", "e", "r"];
//在 栈 上操作数组 在数组结尾操作
arr.push("1", "2");
arr.pop(); //在结尾处一次删除一个,多次删除多个
//在 队列上 操作数组 在数组开头操作
arr.unshift("-1", "-2");
arr.shift(); //在开头处一次删除一个,多次删除多个
document.write(arr + "<br/>"); 我也很惊讶,不用遍历数组元素,而是直接而已写出来
document.write(arr.length);
此处补充一下 队列和栈的关系

数组里面还有一个sort()的排序方法:最重要的就是这个方法里可以定一个回调函数,然后按照自己的要求进行排序,至于这个排序的原理,我现在居然还说不清楚,等到请教高手后在完善吧
var arr = [7, 6, 5, 4, 3, 2, 1];
arr.sort(function (a, b) {
if (a > b)
return -1;
else if(a==b)
return 0;
else
return 1;
});
for (var i = 0; i < arr.length; i++)
{
document.write(arr[i] + "<br/>");
}
浙公网安备 33010602011771号