您的位置:首页 > Web前端 > JavaScript

JavaScript内置对象分析

2016-12-29 01:09 393 查看
l  在ECMAScript规范中,预定义了一些常用的构造函数, 我们一般称它们为JavaScript内置对象, 我们可以用new来调用它们创建Object对象

l  常用的内置对象:

n  数据封装对象: Object,Array,String,Number,Boolean,Date,Function

n  工具对象: Math, RegExp

1.1. 数据封装类对象

1). Object : 所有对象(构造器)的父级对象

l  toString()

var obj=new Object();
obj={};
alert(obj.toString());
alert(obj==obj.toString());//true
obj.toString=function(){return "my toString()";};
alert(obj.toString());//my toString()


l  reverse()2).  Array:数组
l  sort()

l  push()

l  pop()

var arr=new Array(620,'61b','62a');
alert(arr)
alert(arr.reverse());
alert(arr.sort());
arr.push('hello');
alert(arr);
var result=arr.pop();
alert(result);
alert(arr);
alert(arr.length);
alert(arr[2]);
delete arr[2];
alert(arr.length);
alert(arr[2]);


l  toUpperCase()3).  String: 包装字符串的对象
l  toLowerCase()

l  charAt()

l  indexOf()

var s="hello";
alert(s.length);
s=new String("world");
alert(s.length);
alert(s.toUpperCase());
alert(s.toLowerCase());
alert(s.charAt(2));//r
alert(s.indexOf("l"));//3


4).  Number: 包装数值的对象
var number=new Number(5)
alert(number);
alert(Number.MAX_VALUE);


5).  Boolean: 包装boolea值的对象

6).  Date: 日期时间对象

var b=new Boolean(0);
alert(b);

var date =new Date();
alert(date.toLocaleString());


7).  Function: 函数

var sum=function(a,b){return a+b;};
var sum1=new Function('a','b','return a+b;');
function sum2(a,b){return a+b;}
alert(sum(1,23));
alert(sum1(1,24));
alert(sum2(1,25));
alert(sum1.length);//2形参的个数
//argumetns实参的个数

var object={};
function test(name,age){
this.name=name;
this.age=age;
}
test("tom",11);//window.test("tom",11);
alert(name);//tom
test.apply(object,["hello",99])
alert(object.age);//99
test.call(object,"world",22);
alert(object.age);//22

alert(Math.random());
var reg=new RegExp("^\\d{6,8}$");
//
function hello(){}
alert(hello.prototype);//[object Object]
alert(hello.prototype.toString());//[object Object]
alert(typeof hello.prototype);//object
function Person(name,age){
this.name=name;
this.age=age;
}
var p=new Person("test",11);
alert(p.__proto__);//[object Object]
alert(p.__proto__==Person.prototype);//true
Person.prototype.setName=function(name){this.name=name};
//p.setName=function(name){this.name=name};
p.setName("world");
alert(p.name);


函数的定义和调用
 

function sum(a, b) {
   return a+b;
}
var sum2 =
function
(a, b){
   return a+b;
};
var sum3 =
new
Function('a',
'b', 'return a+b;');

//前两种定义方法的本质也是如此执行的
//alert(sum(1,2));
//alert(sum2(1,4));
//alert(sum3(1,6));

length属性: 得到定义的参数个数
//alert(f.length); //区别于arguments

apply(obj,array)方法: 
l  将当前函数应用到指定的对象上去执行, 如果没有就是window

var obj = {};
 
function test(name, age){
   this.name = name;
   this.age = age;
}
 
test.apply(obj, ["Tom", 12]);
//alert(obj.name);

7.4). call(obj, args)方法:
test.call(obj, "JACK", 34);
//alert(obj.name);

1.2. 工具类对象

1).  Math: 包含一些数据计算的static方法
//alert(Math.random()); //得到一个0到1的随机值
//alert(Math.min(4, 3));//得到较小的一个值

2).  RegExp: 正则表达式对象
l  正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

var reg =
new
RegExp("^\\d{6,8}$");
reg = /^\d{6,8}$/;
//alert(reg.test("123123222"));
//alert(reg.test("12312a"));

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: