下面为自己初学javascript时觉得应该注意的地方(从<<javascript动态网页开发详解>>中学到)
javascript的数据类型
number:整形,浮点型
string:字符型数据,javascript不区分单个字符和字符串,
任何字符或字符串都可以用又引号或单引号引起来.
boolean:布尔型
undefined:未定义类型,用于不存在或者没有被赋初值的变量或对象的属性如:
var name;此时的name即为undefined
null:空值,一般将undefined型和null型等同对待
function:函数,可以通过new操作符和构造函数function()来动态创建所需要功能的函数,并为其添加函数体.如:
var myfunction = new function()
{
staments ;
} ;
组合类型:array,object
array:数组类型,包含基本和组合数据的序列.数组本质上即为array对象.
var score = [56,34,23,76,45] ;
object:对象类型,对象为可包含基本和组合数据的组合类型,
且对象的成员作为对象的属性,对象的成员函数作为对象的方法.
javascript中的运算符:
空运算符对应的关键字为void,其作用是定义一个表达式,但该表达式并不返回任何值.
对象运算符:点运算符,new选自符,delete运算符,()运算符.
typeof运算符:用于表明操作数的数据类型,返回值类型为一个字符串.如:
var mystring = typeof(data) ;
with对象操作语句:简化对象属性和方法的引用过程,其语法结构如下:
with(object)
{
statements ;
}
for...in:进行对象的循环操作.如:
for(变量名 in 对象名)
{
statements ;
}
函数:定义如下:
function funcname([parameters])
{
statements ;
[return 表达式;]
}
全局函数:javascript中定义了很多的全局(内建)函数,在编程过程可以直接调用.
parseint():将字符串转换为整数.
parsefloat():将字符串转换成浮点数.
escape():将一些特殊字符转换成ascii码.
unescape():将ascii码转换成字符.
javascript脚本语言中所有的数据类型,数组等均可作为对象对待,
函数也不例外.可以使用new操作符和function对象的构造函数function()
来生成指定规则的函数,其基本语法如下:
var funcname = new function(arguments,statements;) ;
javascript的事件处理:
javascript脚本处理事件主要可通过匿名函数,显式声明,手工触发等方式进行.
匿名函数:
document.myform.mybutton.onclick=new function()
{
alert(your have clicked me!);
}
手工触发:
通过其他元素的方法来触发一个事件而不需要通过用户的动作来触发该事件如:
<script language="javascript" type="text/javascript">
<!--
function myimagea()
{
document.all.mypic.src="2.jpg";
}
function myimageb()
{
document.all.mypic.src="1.jpg";
}
-->
</script>
<script language="javascript" type="text/javascript">
<!--
//没有放在函数当中被其它控件调用
document.all.mypic.onmouseover=myimagea;
document.all.mypic.onmouseout=myimageb;
-->
</script>
顶级对象之间的关系:
打开一个网页时生成对象的顺序为:window->screen,navigator,location,history,frames[],document.
javascript中的对象:
javascript中的主要对象有:
javascript的核心对象,浏览器对象,用户自定义对象和文本对象等
javascript作为基于对象的编程语言,其对象实例采用构造函数来创建.
每一个构造函数包括一个对象原型,定义了每个对象包含的属性和方法,对象是动态的,表明对象实例的
属性和方法是可以动态添加删除或修改的.
通过构造方法来定义对象:
<script language="javascript" type="text/javascript">
<!--
//对象的构造函数
function test(iname,iaddress,igrade,inumber)
{
this.name=iname;
this.address=iaddress;
this.grade=igrade;
this.number=inumber;
this.information=showinformation;
}
//定义对象的方法
function showinformation()
{
statements ;
}
//生成对象的实例
var test = new test('thtwin,'thtwinj2ee','th','thtwin') ;
-->
</script>
对过对象直接初始化的方法:
此方法通过直接初始化对象来创建自定义对象与定义对象的构造函数方法不同的是,
该方法不需要生成引对象的实例.例如:
<script language="javascript" type="text/javascript">
<!--
//对象的构造函数
//构造嵌套的对象
var schooldata={
code:"0123-456-789",
tel:"0551-1234567",
fax:"0551-7654321"
};
//构造被嵌入的对象
var mytest={
name:"test",
address:"辽宁*葫芦岛",
grade:"test",
number:"13400",
//嵌套对象schooldata
data:schooldata,
information:showinformation
};
//定义对象的方法
function showinformation()
{
alert(this.data.code) ;
statements ;
}
-->
</script>
下面为调用上面对象的方法:
<form>
<input type="button" value="调试对象" onclick="mytest.information()">
</form>
更新对象中的方法或者属性.如:
<script language="javascript" type="text/javascript">
<!--
//对象的构造函数
function school(iname,iaddress,igrade,inumber)
{
this.name=iname;
this.address=iaddress;
this.grade=igrade;
this.number=inumber;
this.information=showinformation;
}
//定义对象的方法
function showinformation()
{
var msg="";
msg="通过原型给对象添加新属性和新方法:\n\n"
msg+="原始属性:\n";
msg+=" 机构名称 : "+this.name+" \n";
msg+=" 所在地址 : "+this.address +"\n";
msg+=" 教育层次 : "+this.grade +" \n";
msg+=" 在校人数 : "+this.number+" \n\n";
msg+="新属性:\n";
msg+=" 占地面积 : "+this.addattributeofarea+" \n";
msg+="新方法:\n";
msg+=" 方法返回 : "+this.addmethod+"\n";
window.alert(msg);
}
function mymethod()
{
statements ;
}
//生成对象的实例
var test=new school("test","辽宁*葫芦岛","test","123000");
school.prototype.addattributeofarea="3000";
school.prototype.addmethod=mymethod();
-->
</script>
javascript语言中所有对象都由object对象派生,每个对象都有指定了其结构的原型(prototype)属性,
该属性描述了该类型对象其有的代码和数据,可以通过对象的prototype属性为对象动态添加新属性和新
方法