废话篇头:
由于工作关系,所以写博文的时间有那么点~~,其实是输入法太懒了,都是输入法的错~~
这一系列的博客将总结所有关于JavaScript语言的精髓,适合0基础到大师级别人物阅读。
《JavaScript 精髓整理篇》将系统整理Javascript语言精要。欢迎们加入我信息栏中的qq群,我们可以一起探讨。qq群:164858883
精华不容错过:
随着nodejs的火爆,以及移动开发的热潮,js的地位已经火速上涨。
JavaScript 精要可以从下面11个关键类型入手:Object、Arguments、Array、Boolean、Date、Error、Function、Math、Number、RegExp、String
下面将逐个讲解,首先从Object开始
学习Java和c#的朋友明白,Object是所有类的父类。Js 中的 Object 是超类对象,从面向对象的层面上讲,它也是js中所有类的父类。他下面的小罗罗有以下:
Object | 含有所有JavaScript对象的特性的超类 |
Object.constructor | 对象的构造函数 |
Object.hasOwnProperty( ) | 检查属性是否被继承 |
Object.isPrototypeOf( ) | 一个对象是否是另一个对象的原型 |
Object.propertyIsEnumerable( ) | 是否可以通过for/in循环看到属性 |
Object.toLocaleString( ) | 返回对象的本地字符串表示 |
Object.toString( ) | 定义一个对象的字符串表示 |
Object.valueOf( ) | 指定对象的原始值 |
逐个解释Object的小罗罗:
1、构造器:new Object() 声明一个空对象
new Object(value) 声明一个带初始化的对象,value的值可以是 Number 、Boolean、String等类型。
2、构造属性:Object.constructor 这个是用于检测Object的类型,功能与typeof 如出一辙。e.g.
var a = new Object(true)
alert(a.constructor == Boolean)// 输出true
3、判断继承属性: Object.hasOwnProperty (propname) //返回boolean, propname属性名, e.g.
1 var o = new Object( ); // 创建对象 2 3 o.x = 3.14; // 定义非继承的局部属性y 4 5 o.hasOwnProperty("x"); // 返回 true: x 是O的局部属性 6 7 o.hasOwnProperty("y"); // 返回 false: o 没有属性y 8 9 o.hasOwnProperty("toString"); // 返回 false: toString属性是继承的
4、原型判断:Object.isPrototypeOf(o) //返回boolean类型,o是任意对象。JavaScript对象继承了原型对象的属性。一个对象的原型是通过用于创建并初始化该对象的构造函数的prototype属性引用的。isPrototypeOf()方法提供了判断一个对象是否是另一个对象原型的方法。该方法可以用于确定对象的类。e.g.
1 var o = new Object( ); // 创建一个对象 2 3 Object.prototype.isPrototypeOf(o) // true: o 是一个对象 4 5 Function.prototype.isPrototypeOf(o.toString); // true: toString 是一个函数 6 7 Array.prototype.isPrototypeOf([1,2,3]); // true: [1,2,3] 是一个数组 8 9 10 //下面是执行同样测试的另一种方法 11 12 (o.constructor == Object); // true: o was created with Object( ) constructor 13 14 (o.toString.constructor == Function); // true: o.toString is a function 15 16 17 18 /原型则对象本身于原型对象。下面的调用返回true 19 20 //说明函数继 Function.prototype和Object.prototyp属性. 21 22 Object.prototype.isPrototypeOf(Function.prototype);
5、转换成字符串:Object.toString()
这里的方法toString()并不是在JavaScript程序中经常显示调用的那个toString()方法。它是在对象中定义的一个方法,当系统需要把对象转换成字符串时就会调用它。
当在字符串环境中使用对象时,JavaScript系统就会调用toString()方法把那个对象转换成字符串。例如,假定—个函数期望得到的参数是字符串,那么把对象传递给它时,系统就会将这个对象转换成字符串:
alert(my_object);
同样,在用运算符“+”连接字符串时,对象也会被转换成字符串:
var msg = ‘My object is: ‘ + my_object;
调用方法toStrlng()时不给它传递任何参数,它返回的应该是一个字符串。要使这个字符串有用,它的值就必须以调用toString()方法的对象的值为基础。
当用JavaScript自定义一个类时,为这个类定义一个toString()方法很有用。如果没有给它定义toString()方法,那么这个对象将继承Object类的默认toString()方法。这个方法返回的字符串形式如下:
[object class]
这里,class是一个对象类,其值可以是“Object”、“String”、“Number”、“Function”、 “Window”、“Document”,等等。这种行为有时对确定未知对象的类型或类有用。但由于大多数对象都有自定义的tostring()版本,所以必须明确地对对象o调用 Object.toString(),代码如下所示:
Object.prototype.toString.apply(o);
注意,这种识别未知对象的方法只适用于内部对象。如果你定义了自己的对象类,那么它的类是“Object”。在这种情况下,可以用Obiect.constructor属性获取更多有关对象的信息。
在调试JavaScript程序时,toString()方法非常有用,使用它可以输出对象,查看它们的值。因此,为你创建的每个对象类都定义toString()方法很有用。
虽然tostring()方法通常由系统自动调用,但你也可以自己调用它。例如,在JavaScript不能自动把对象转换成字符串的环境中,可以明确地调用toString()方法来实现这一点:
y = Math.sqrt(x); // 计算一个数 ystr = y.toString( ); // 转换为—个字符串
注意,在这个例子中,数字具有内部的toStrlng()方法,可以用该方法进行强制性的转换。
在其他的环境中,即使JavaScript可以自动地进行转换,你也可以调用toString()方法,因为对toString()的明确调用可以使代码更加清晰:
alert(my_obj.toString( )); 6、转换为本地字符串:Object.toLocaleString()用法和toString()差不多。
该方法用于返回对象的字符串表示,本地化为适合本地的形式。Object类提供的默认的toLocaleString()方法只调用toString()方法,返回非本地化的字符串。但其他类(包括Array、Date和Number)定义了自己的toLocaleString()版本,指定本地化字符串的转换。在定义自己的类时,也可以覆盖该方法。
这一系列将持续更新,转载请注明出处:http://zhutty.cnblogs.com
如果对您有用,请不吝捐赠:支付宝