jQuery学习笔记一:你必须知道的JavaScript知识
JavaScript是一种基于对象和事件驱动的客户端脚本语言,由Netscape的LiveScript发展而来,是一种动态、弱类型、基于原型的语言。一个完整的 JavaScript 实现由核心(ECMAScript)、文档对象模型(Document Object Model,简称DOM)和浏览器对象模型(Browser Object Model,简称BOM)三个部分组成。
- 关于JavaScript对象
大多数的面向对象语言都定义了一个特定的根本Object类型,作为其他所有对象的基础,JavaScript也不例外。但从基本的层面上来说,JavaScript的Object与其他面向对象语言的Object几乎没有什么共同之处。JavaScript中的所有事物都是对象,比如字符串、数字、数组、日期等等。在JavaScript中,对象是拥有属性和方法的数据。
JavaScript创建自己的对象十分简单,下面的例子创建了”person”对象,并为其添加了几个属性:
var person=new Object(); person.firstname="Jerry"; person.lastname="Chu"; person.age=20; document.write(person.firstname + " is " + person[“age”] +" years old.");
上例的最后一句代码也显示了访问JavaScript属性的两种常用方式。
实际上,当你如下声明一个变量时:
var name=”Jerry”;
就已经创建了一个JavaScript字符串对象。字符串对象拥有内建的属性length,以及indexOf()等内建方法。
从上面的实例中我们得知,JavaScript Object实例(对象)是属性的集合,每一个属性都由名称和值构成。属性的名称是字符串,而属性的值可以是任何JavaScript对象(甚至可以是函数)。
JavaScript创建对象的方法不少,但像上例中的方法既单调乏味又冗长易错。下面,我们学习一种更为简洁、可读性更强的表示法——JSON(JavaScript Object Notation,JavaScript对象表示法)。
var person={ firstname: "Jerry", lastname: "Chu", age: 20, pet: { type: "dog", color: "black" } };
事实上,大多数页面作者对JSON的偏爱远远超过利用多个赋值语句来创建对象的方法。(关于JSON更详细的信息,请自行Google/Baidu)
- 关于JavaScript函数:
JavaScript函数的语法并不复杂,定义函数时使用了关键词function
functionmyFunction() { //这里是要执行的代码 }
当然,与其它语言类似,你也可以为函数增加参数,此处不再赘述。
下面是重点:
在JavaScript里,函数被认为是对象,与JavaScript里所定义的任何其它类型一样,比如String、Number或Date。就像其它构造器一样,函数也可以通过JavaScript构造器来定义。通过这种方式,Function可以:
(1) 被指派给变量
(2) 被指派为对象的属性
(3) 被传入参数
(4) 作为函数结果返回
(5) 用字面量来创建
这一点与我们在使用其它编程语言时不同,可能会让人感到困惑,那么考虑下面的语句:
doSomething=function() { Alert(“does something!”); }
function关键字自动地创建Function实例并把它指派给利用函数“名称”所创建的window的属性。再看下面语句
aNumber=6;
事实上这个语句的语法与之前的例子完全相同,6作为一个Number实例被指派给aNumber变量。
我们对JavaScript里的函数不理解主要是我们在学习其他面向对象语言(如Java)时,函数并不是作为一种对象,而是被对象或者实例来调用。因此,若想理解JavaScript里的函数,我们需要认识到,JavaScript对待函数的方式与其他对象相同,所以函数是JavaScript的“一等公民”(《jQuery实战》)。
所以,见到下面的代码时,也就不足为奇了:
var person={ firstname: "Jerry", lastname: "Chu", age: 20, pet: { type: "dog", color: "black" }, getMyInfo: function(){return this.firstname+” ”+this.lastname+” is ”+this.age+” years old” ;} };