2025-05-25

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> 

摘自  大菜鳥的開發之路 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *