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

js常见的问题

2012-03-22 14:28 162 查看
js常见的问题

》区分大小写

》单引号,双引号

-js中习惯是用单引号。

-html的属性值规定用双引号。

-单引号中可以包含双引号,说引号里面也可以包含单引号。

》括号

-可以是分隔符,也可以是个表达式。如下:

-(function(){})()

-onload函数是在整个页面加载完的时候加载。(有很多图片的话,会很慢,可以改写window.onload函数,加载完文字的时候开始同时执行函数)

》函数调用和引用

var foo=functionName();

var foo1=functionName;

前者表示函数的返回值,后者表示对函数的一个引用。如:window.onload=functionName;

》换行

js中一行就是默认一个语句,不能包含强制换行符,如果要换行的话,可以在行的结尾加个反斜杠,或者使用字符串连接符+;建议使用后者。

》分号、大括号可选

分号可以不加,但是为了代码的可读性,建议加上。

》重载

js中不支持重载,两个函数同名的情况下(和参数无关),下面的函数会覆盖掉上面的函数。

如果代码中出现:function alert(){};则会把核心函数alert覆盖掉。

所以在给函数命名的时候,不要使用核心函数的名称。

》作用域、闭包

作用域——对某一个属性或者方法具有访问权限的代码空间。

闭包——内部函数即使在外部函数执行完成并终止后,仍然可以访问外部函数的属性。

相关代码如下:

===============================

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<META NAME="Generator" CONTENT="EditPlus">

<META NAME="Author" CONTENT="">

<META NAME="Keywords" CONTENT="">

<META NAME="Description" CONTENT="">

<SCRIPT LANGUAGE="JavaScript">

<!--

//(function() ---这样的话 hid就会报null或者不是对象、找不到。

function hinit()

{

for(var i=1;i<=3;i++){

var hid=document.getElementById("id"+i);

//调用外部实例,闭包,2者的区别:

//为他的实例保存了唯一的对象。

registerListener(hid,i);

//错误代码--弹出的都是id4.原因:在监听onclick事件的时候,在内部没有找到i,所以只能到外部作用域去找i,这时的i=4;

//hid.onclick=function(){

//alert("id"+i);

//}

}

}

//)();

function registerListener(hid,i){

//此时的i可以找到在内部作用域中找到

hid.onclick=function(){

alert("id"+i);

}

}

window.onload=hinit;

//-->

</SCRIPT>

</HEAD>

<BODY>

<a id="id1" href="#">id1</a></br>

<a id="id2" href="#">id2</a></br>

<a id="id3" href="#">id3</a></br>

</BODY>

</HTML>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: