浏览 3895 次
锁定老帖子 主题:读李战《悟透JAVASCRIPT》笔记一
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-21
简单数据五种: undefined null boolean number string 复杂数据一种: object JavaScript中的代码形式体现为:function typeof 123 typeof(123)类型是“number” typeof typeof(123) 类型是“string typeof(null)类型是object,但null并非是object类型 undefined ,null,"",0逻辑值都为false undefined==null "123"==123为true "0123"==0123为false "123"===123为false 简单类型不具备对象化能力 javascript没有类 <script type="text/javascript"> var life={}; for(life.age=1;life.age<=3;life.age++) { switch(life.age) { case 1: life.body="我出生了"; life.say = function(){alert(this.body)}; break; case 2: life.body="我长大了"; life.brother="小弟弟变大了"; life.say = function(){alert(this.body+"-"+this.brother)}; break; case 3: life.body="我老了"; life.brother="儿子出来了"; life.say = function(){alert(this.body+"-"+this.brother)}; break; } life.say(); } </script> 如上对象不断进化。 <script type="text/javascript"> function my() { alert("神啊"); }; var my2 = function() { alert("神仙"); }; alert(typeof(my2));等到的值是funtion alert(typeof(my)); my2();函数调用 my(); </script> javascript缺省作用域就是——window对象 var name = "名字";name代表window作用域下的一个变量 name="名字";name代表window对象中的一个属性 var只在本作用域有效 函数的caller属性,返回调用函数的父函数,若值为null,代表:无调用或为全局代码调用,caller属性Opera浏览器不支持 arguments对象,可以以数组的形式访问函数参数 eval()函数不创建新的作用域,以为着访问当前作用域 对象化能力 javascript中只有object与function具备此能力 <script type="text/javascript"> var myObject = {}; myObject.aProperty="属性"; myObject.aMethod = function(){ alert("方法"); } alert(myObject["aProperty"]); myObject["aMethod"]();//以数组的方式调用函数 for(var s in myObject) { alert("s is a "+typeof(myObject[s]));//遍历对象中的属性与方法 } </script> 函数也能如上使用 javascript中的this不等价与其它编程语言中的this,self,me之类 <script type="text/javascript"> var aMethod = function(){ alert(this.name+" 方法"); } aMethod.call({name:"nobody"});//此时this.name为nobody </script> javascript对象的创建 称之为:JSON,javascript对象表示法,每项用“,” 分割 空对象 var a = {}; 带属性和方法 var b = {name:"jun",eat:function(){alert("吃饭求")}}; 构造对象--函数当构造函数用 <script type="text/javascript"> function Person(name) { this.name = name; this.sayHello = function(){ alert("hello,I'm "+this.name); } } function Employee(name,salary) { Person.call(this,name); this.salary = salary; this.showMeTheMoney = function() { alert(this.name + "$"+this.salary); } } var bill = new Person("bill"); var json = new Employee("json",134); bill.sayHello(); json.sayHello(); json.showMeTheMoney(); alert(bill.constructor==Person);//true alert(json.constructor==Employee); alert(bill.sayHello == json.sayHello);//false </script> prototype原型:提供了一群同类对象共享属性和方法的机制 <script type="text/javascript"> function Person(name) { this.name = name;//各对象一份name Person.prototype.sayHello = function(){//共享sayHello方法 alert("hello,I'm "+this.name); } } var bill = new Person("bill"); var json = new Person("json"); bill.sayHello(); json.sayHello(); alert(bill.sayHello == json.sayHello); </script> 原型链,到头是object原型所指定的对象 原型可以在本对象中本重写覆盖,但同类对象并不受影响 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-22
是本好书,虽然去年就看过了好几次电子版的.最近还是买了一本来收藏 .
|
|
返回顶楼 | |
发表时间:2009-07-23
是本好书,就是太薄太贵啦~
现在放在枕边,像本小人书。 最后一章的跨域SSO很实用。 |
|
返回顶楼 | |
发表时间:2009-07-23
JavaScript真是一门神奇的语言
强类型语言学多了,遇到弱类型语言真的不知道怎么办 |
|
返回顶楼 | |
发表时间:2009-07-23
虽然js很神奇
多写写就ok |
|
返回顶楼 | |
发表时间:2009-07-23
还有多多debug
|
|
返回顶楼 | |
发表时间:2009-07-26
以前只是用js做点表单验证、提交之类的简单应用。后来认真去学了下js,才知道js原来很强大。
|
|
返回顶楼 | |
发表时间:2009-07-28
其实我学js主要是想看看,JAVA在使用SCRIPT API后用JAVASCRIPT会不会很爽。。。groovy是不错,但总觉得有些别扭
|
|
返回顶楼 | |