javascript 学习笔记 1

本意在于看ajax,但当看到核心部分时竟发现自己对javascript是那么陌生,不由得又回到开始重新去学习下在ajax中起到粘合剂作用的语言javascript。碰巧的是我这时正在看的书的作者也是在java,c++等语言的基础上去看的,这让我有了一个更好认识javascript的机会。下面的东西自己只是作为一个打字工和一个摘录者,大多参考了Dave Crane和Eric Pascarello的ajax实战(中文)。


javaScript不是 java

名字由NETSCAPE 市场部决定,起这个名字完全是为了沾java的光。其思想大多源于类似Scheme和Self的函数式语言(functional language),与python也有很多共同之处。语法样式上与java相似,但在很多场合它的行为与Java并不相同。
如下表总结了javascript的关键特征:

特征                                  含义
变量是,弱类型(loosely typed) 变量仅仅声明为变量,而不是整数、字符串、或者特定类                      的对象。在JavaScript中,给同一个变量分配不同的类型是合法的
代码是动态解释的         非预编译语言(例如Java,C,C#),运行时代码以文本形式保存并且在程序运行时解释为机器指令。使通过其他代码动态生成代码成为可能,而无需求助于特殊的字节码生成器
JavaScript函数是正常对象 Java对象的方法只能通过对象来调用。JavaScript函数可     以附加到对象上,使得它们的行为类似于方法,但是也可以在其他上下文中调用,并且在运行时附加到其他对象上
JavaScript对象是基于prototype的 任何JavaScript对象仅仅是一个对象,她仅仅是一个化妆了的关联数组(请注意这是个数组)

(接下来,JavaScript对象实际本质,它们如何由成员字段和函数构成,JavaScript函数时间有什么能力。)


JavaScript中的对象

它不要求使用对象,甚至不要求使用函数。可以将程序写出一个文本流,当解释权读取它时直接执行。但是需要注意的是,你也可以想象,当程序越来越大时,函数和对象是一种组织代码的及其有用的方式。

创建一个最简单的JavaScript对象(调用Object类内建的构造函数):
Var myObject = new Object();
注:初始化为“空”,不包含属性或者方法。

创建即使对象

JavaScript对象本质上是一个关联数组,由以名称作为键的字段和方法组成。
有两种以即时的方式创建对象的方法。直接使用JavaScript及使用JSON来创建对象。
第一,使用JavaScript语句

将一个属性添加到前面的简单对象上:
myObject.shoeSize = “12”;

在面向对象语言中,我们需要定义一个类来声明属性shoeSize,对于JavaScript这是不必要的。上面也可以用数组语法来引用属性:
myObject[‘shoeSize’] = “12”;

动态添加一个新的函数:
myObject.speakYourShoeSize = function()
{
alert(“…………”);
}

或者借用一个预先定义的函数:
function sayHello()
{
alert(“…………”);
}
…………
myObject.sayHello = sayHello;

注意,当分配预先定义的函数时,省略了圆括号。如果写成
myObject.sayHello = sayHello();
那么将执行sayHello函数,并且用它的返回值来给myObject的sayHello属性赋值,在这里是null。

我们也可以将对象附加到其他对象上,从而创建复杂的数据模型等:
var myLibrary = new Object();
myLibrary.books = new Array();
myLibrary.books[0] = new Object();
myLibrary.books[0].title = “………………”;
myLibrary.books[0].authors = new Array();
var jim = new Object();
jim.name = “……”;
jim.age = 9;
myLibrary.books[0].authors[0] = jim;

多么麻烦啊,当然我们可以使用一种紧凑的符号,那就是JSON。打字也是累的,闪人先~~~~

你可能感兴趣的:(JavaScript,Ajax,json,python,Scheme)