`
Acmey
  • 浏览: 52546 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
1.JavaScript语句可以放在程序任何地方,一般放在head之间,

<script language=”javascript” type=”text/javascript”>

document.write(“Hello World”);

</script>


2. 使用src属性

<script language=”javascript” type=”text/javascript” src=”1.js”>

</script>



在文本中输入document.write(“Hello World”);保存为1.js

(2的结果和1的相同)


3.伪url属性

   <form name=”form1”>

      <input type=”text” name=”text” value=”点击”

           onClick=”javascript:alert(‘已点文本框’)”>

  </form>


4.  <script language=”javascript” type=”text/javascript”>

      function ClickMe(){

          alert(‘已点文本框’);

   </script>

 

   <form name=”form1”>

      <input type=”text” name=”text” value=”点击”

           onClick=”ClickMe()”>

  </form>

  (4的效果和3相同)


5.JavaScript脚本程序对大小写敏感。每行语句结束时可以不要分号,但多条语句

作为一行时必须要有分号。变量标识符为var(基本上数据类型都可以用var来标识)




6.<body onload=”add(num)”>,代码载入时,执行在JavaScript中定义的

function add(num).


7. function Test(){

        var msg+=”引用语句”;

        msg+=”返回结果”;//默认数据类型

        alert(msg);

        window.close();//询问是否关闭,直接调用此语句

   }


8.typeof运算符返回变量的数据类型。


9.var year=window.prompt(“请输入你的年龄”,25);

  执行此语句会出现一个对话框,默认的是25,你可以输入你自己的年龄。


10.在脚本代码中适当使用with语句可使代码简明易懂,避免不必要的重复输入。

若代码中涉及到多个对象,不推荐使用with语句,避免造成属性或方法引用的混乱



   document.write(“1”);

   document.write(“2”);

   document.write(“3”);

   document.write(“4”);

以上代码可简化为:

with(document){

     write(“1”);

     write(“2”);

     write(“3”);

     write(“4”);

}


11.for...in循环语句可以对指定对象的属性和方法进行遍历。

      for(变量名 in 对象名){

           语句体;

       }


12.尽量检测界面输入时的错误

function muti(x,y){

    if((typeof(x)!=”number”) || (typeof(y)!=”number”)){

         return errorNum;

    }

     else{

       return (x*y);

     }

  return;

}


13.通过name和通过id访问文档对象的方法:

document.form1.text.value;

document.getElementById(“id”);


14.警告框用alert()方法;确认框用confirm()方法;提示框用prompt()方法。


15.编写JavaScript是要大小写严格限制。冒号不要省略。

注释: //  /* */

标识符:字母,数字,'_',$。第一个字符不能使数字。

16.JavaScript中的Boolean值很容易转换,和Java中的有些不同的。非空对象,数

组或者函数等,TRUE就转换为数字1,

  0或者NaN,null,为定义的值,空字符串,转化为FALSE。

17.JavaScript中的函数是真正的数值,意味着可以存储在变量,数组和对象中。

18.两种定义函数的方法:function square(x){return x*x;}  || var

squery=function(x){return x*x ;}

这种方式用的很少,效率低:var squery =new function("x","return x*x;");

19.JavaScript中的对象可以最为关联数组使用。image.width  和用法一样 image

["width"]

20.对象直接量:var rectangle = { upperleft:{x: 2, y:2 },lowerRight:{x: 4,

y:4}};

21.数组:var a=  new Array(); a[0]=1.2;a[1]={s:1,y:2}; ==>var a = new

Array(1.2,{s:1,y:2});

  数组直接量:var a=[1.2,{s:1,y:2}]; var spareArray =[1,,,,5];其中有三个

为定义

22.in 运算符:要求左边的运算符是一个字符串,或者可以转换为字符串。又边是

一个对象或者

数组,如果该运算符左边的值是其右边对象的一个属性名,则返回TRUE。

var point ={x:1,y:2}; var has_x_coord= "x" in point; var ts ="toString"

in point;

23.instanceof运算符。左边是一个对象,右边是对象类的名字,返回为TRUE

如果左边不是对象,或者右边的运算符是一个对象,而不是一个构造函数,返回

FALSE

24.typeof运算符:是一元运算符,放在一个运算符之前,这个运算符可以使任意类

型的,返回一个

字符串。数字---number || 字符串---string || 布尔值---Boolean

对象,数组,null --- object || 为定义---undefined

25.with语句:用于暂时修改作用域 with(Object) statement

如果要多次访问fram[1].document.forms[0]这个表单,可以使用with语句将这个表

单添加到作用域链中:

with(frames[1].document.forms[0]){

name.value="";

address.value="";

}//这种方式不建议使用。这种方式可以用下面的语句代替

var form = frames[1].document.forms[0];

form.name.value="";

form.address.value="";


26.for..in..语句  遍历一个对象的属性。

27.通用的Object对象属性和方法:

        constructor属性:var d = new Date();  ==> d.constructor == Date

//TRUE

if(typeof o == "object" && o.constructor ==Date) ==> if(typeof

o=="object" && o.instanceof Date)

toString 和toLocaleString方法

valueOf()方法 把一个对象转换为某种基本类型的数据类型,也就是一个数字而不

是一个字符串的时候才调用的方法

hasOwnProperty()方法 //如果对象用一个单独的字符串参数所指定的名字来本地定

义一个非继承的属性

var o={};

o.hasOwnProperty("toString"); //false,toString is an inherited property

o.hasOwnProperty("undef"); //false

Math.hasOwnProperty("cos");//true,Math has a cos property

propertyIsEnumerable()方法 //对象用一个单独的字符串参数所指定的名字来本地

定义一个非继承的属性

var o= { x:1 };

o.propertyIsEnumerable("x");//true

o.propertyIsEnumerable("y");//false

isPrototypeOf()方法  //这个方法所属的对象是参数的原型对像返回TRUE。else

false

var o={ x:1};

o.prototype.isPrototypeOf(o); //true

Object.isPrototypeOf(o); //false

o.isPrototypeOf(Object.prototype);//false

Function.prototype.isPrototypeOf(Object) //true

28.JavaScript数组

Javascript是基于prototype的面向对象语言,没有类的概念,所有的一切是现有对

象的副本

JavaScript对象:

function对象,alert();作为函数,可以用参数进行调用

  作为构造函数的function,必须通过new关键字来实例化

  var myFunction = new Function(",");//不推荐使用,影响性能,注意这是F大写

  function myFunction(){}//推荐

Object对象,无法将像function类对象那样调用,而且具有固定的功能。

  var obj = new Object();也可以简单的写为 var obj = {};创建简单的对象

  obj("Error");//出错了,没有产生构造函数

Array对象,是一种特殊的属性和方法的集合 var array = new Array();<==>var

array = [];

String,Boolean,Number,Math,Date,RegExp对象

Javascript中的继承:与传统的面向对象不同,在JS中的继承是通过简单的从一个

对象原型向

另外一个对象原型复制而实现的

var person ={};//定义person对象

person.getName=function(){//为person对象构造了方法

alert("person name");

}

var student = {};

student.getName=person.getName;//继承了person的方法

person.getName=function(){

alert("person1 name");

}

student.getName(); //person name

person.getName(); //person1 name

Javascript对象是什么?

数组的两种的实现方案,顺序数组、散列数组(key,value)

对象==关联数组==属性包==存储体

对象只有成员访问这一个操作

JavaScript原型、对象

原型只存在于function中,它实质上是一个对象被创建后引擎自动创建一个空的

prototype对象

由于对象是属性包所以原型就是一个属性包

原型中读的时候从原型链上读,写的时候往自己里面写

构造自己的构造函数:

function myConstructor(a){//.....} <==> var myConstructor=new Function

('a',"/*某些代码*/");

var myObject = new myConstructor();//实例化后会执行代码

例如:function myConstructor(message){ this.myMessage = message ;}

var obj = new myConstructor();//这样obj中也包含了myMessage这个属性

如果加入参数var obj = new myConstructor("hello word");//这样myMessage这个

属性的值为hello word

如果这样会出错的:

var myObject = new Object();

var obj = new myObject();//出错了!!因为myObject不是构造函数

能够的使实例化的对象包含的方法称为公有方法,需要修改函数的原型。

当修改一个对象的原型时,任何继承该对象的对象和已经存在的所有实例立即继承

同样的变化。根据用法的不同这一特性

功能既强大也会导致问题。因此当你修改自己的当不是你的原型时候要特别小心

例如://添加公有的属性:

function myConstructor(message){ this.myMessage = message ;}

//添加公有的方法:

myConstructor.prototype.clearMessage=function(string){

this.myMessage+=' '+string;

}

var myObject = new myConstructor("hello word");

myObject.clearMessage("12");//但是不能直接在myConstructor上调用这个方法

添加静态属性和方法:

--|在prototype下添加的属性和方法。能够被继承下来的。上面已经介绍过

--|   //secondObject既是一个实例也是一个构造函数

var secondObject = function(){

}

secondObject.name='hj';//添加新的静态成员属性name

secondObject.alertName=function(){//添加新的静态成员方法

alert(this.name);

}

secondObject.alertName();

//静态成员name和alertName成员不能用到新的实例中

var obj= new secondObject();//出错了,obj不是一个function

obj.alertName();

添加私有的方法和属性(以及特权方法):

私有成员就是在构造函数中定义的变量和函数,例如:

function myConstructor(message){

    this.myMessage = message ;

    var myOwner=this;//私有属性

    var separator='_'//私有属性

    function alertMessage(){ alert(myOwner.message);}//私有方法

    alertMessage();//实例化是显示信息

    ..........

    //特权方法:

特权方法,与私有方法不同的是,特权方法能够公开访问,而且还能访问私有

成员。特权方法是指在构造函数的作用域中是用This关键字定义的 方法

    this.appendToMessage=function(string){



this.myMessage+=separator+string;

alertMessage();

    }

}

公有,私有,特权,静态的总结:

私有和特权成员在函数的内部,他们会被带到函数的每一个实例中,因而占用大量

的内存

公有的原型成员是对象蓝图的一部分,适用于用new关键字实例化该对象的一个实例

,它是能够被继承的

静态成员只适用于对象的一个特殊的实例

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics