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

jQuery学习笔记一:你必须知道的JavaScript知识

2013-03-27 14:42 555 查看
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”      ;}
    };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: