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/>");
}

 

posted on 2017-03-03 23:29  奔游浪子  阅读(128)  评论(0)    收藏  举报

导航