本文介紹了JavaScript的基本(常用)語法,供大家參考。
Overview
先說一下Javascript該怎么寫。兩種形式,一種是直接把JavaScript寫在HTML頁面里,另一種是存在*.js文件里然后在頁面內(nèi)引用。
直接寫時,即可以放在<head> </head>內(nèi),也可以放在<body> </body>內(nèi)。一般函數(shù)是放在<head>區(qū)的,具體的執(zhí)行代碼是在<body>區(qū)里的。例如,在body里寫:
<body>
<script>
document.writeln("haha <br/> ");
</script>
</body>
引用方式
<script type="text/javascript" src="js_css/menutree.js"></script>
執(zhí)行順序與生命期
JavaScript是從上到下依次執(zhí)行/解析的。在調(diào)用一個function或時,必須保證該function已經(jīng)被解析/聲明了。這也是一般要把function定義放在<head>內(nèi)的原因。
所有的function與變量只在本頁面內(nèi)有效,當離開頁面后,新的頁面內(nèi)無法訪問上一頁內(nèi)聲明的變量或函數(shù)。如果一定要訪問的話,可以用Cookie也存一下,到下一頁再讀出來。
syntax - 變量
變量定義就以var開頭即可,就可以定義了一個變量了。放在函數(shù)體內(nèi)的就認為局部變量,外面的就是全局變量。需要指出的是,JavaScript的語法是很亂的,變量也有別的定義方法。但是希望大家不要使用其他亂七八糟的語法,就使用這種最常見的語法就可以,足夠用,而且省腦筋。
關(guān)于變量大家需要明白
(1) 變量是弱類型的,一個整數(shù)甚至可以與字符串直接相加,得到一個字符串
(2) 所謂全局變量,也只是在當前頁面內(nèi)有效,當頁面被unload跳到另一個頁面時,所有的變量都被銷毀了。這些全局變量跟流覽器(也稱為User Agent)內(nèi)嵌變量有區(qū)別,每個頁面都自動有window, document這些內(nèi)嵌對象。
(3) 不區(qū)分單引號還是雙引號
<script>
// 變量定義
var nNumOfBytes = 10;
var fPercent = 0.32;
var strYourName = ‘Mr.Known';
var pRect = new Object();
</script>
syntax - 函數(shù)
<script>
function goToUrl(strUrl)
{
location.href = strUrl;
}
</script>
函數(shù)可以在HTML事件/ FORM / JavaScript 中被調(diào)用,如:
HTML元素事件回調(diào):
<body onload="goToUrl('http://www.jb51.net')" >
FORM元素事件回調(diào)
<select name="somelist" onchange="onSomeThingChanged()">
超鏈接目標
<a href="javascript:goToUrl('www.jb51.net')" > go </a>
直接在JavaScript中調(diào)用
<script>
goToUrl(”www.jb51.net");
</script>
syntax - 類
一般的JavaScript是不需要使自定義類的,就是說一般不會到達這么復(fù)雜的程度。因為是腳本語言嘛,隨便寫幾句就好。一是難調(diào)試,二是不便閱讀。但是如果一定要寫什么復(fù)雜的功能,如菜單樹之類的,那么就得寫一點類來完成了。
同樣,類在JavaScript里也是有2種定義格式的,我們會下面的格式就好了,另一種格式很爛,還是不要知道為好。
先來個不帶構(gòu)造參數(shù)的:
<script>
function SampleClass()
{
// 變量變量定義
this.nId = 10;
// 成員函數(shù)定義
this.plusId = function (nPlus)
{
return this.nId + nPlus;
}
}
</script>
再來一個造參數(shù)的類
function MenuItem(l, h, t)
{
this.label = l;
this.href = h;
this.target = t;
this.toHtml = function()
{
var html = "<a href='" + this.href + "' ";
if(this.target != null)
html += (" target='" + this.target + "' ");
html += " >" + this.label + "</a>";
return html;
}
}
創(chuàng)建類的實例
var item = new MenuItem("haha", http://www.jb51.net, null);
關(guān)于類,注意以下幾點:
(1) 不要從頭寫一個類,請從我這里copy過去再改,這樣就不會有那些莫名其妙的麻煩了
(2) 在成員函數(shù)里引用成員變量,一定要加this.,不然引用不到
(3) 成員函數(shù)如果想返回值,就用return,想return什么類型都不必事先聲明,直接return就好
(4) 對于學(xué)習(xí)C++和Java的程序員來說,要明白var p = new SomeClass();這句中的new其實就是創(chuàng)建一個對象并返回其指針
(5) 考慮使用Object類
syntax - Object類
JavaScript語法很亂的,腳本語言嘛,要求不要太高。雖然可以自定義類,但大數(shù)多情況下都不需要自己聲明一個類,可以直接使用Object類來定義一個結(jié)構(gòu),而無需事先聲明這個結(jié)構(gòu)的形式。
如:
function createObject()
{
var obj = new Object();
obj.x = 10;
obj.y = 11;
return obj;
}
看到?jīng)],這個函數(shù)隨意的創(chuàng)建了一個object,為其添加成員 x, y,并沒有通知任何人(無prototype聲明)。而使用者也是直接就可以調(diào)用其 o.x , o.y,無需要猜測。
<script>
var o = createObject();
document.writeln("x=" + o.x + ", y=" + o.y);
</script>
不過為了安全起見,也可以寫成這樣:
var o = createObject();
if(o.x != null && o.y != null)
{
document.writeln("x=" + o.x + ", y=" + o.y);
}
syntax - 數(shù)組Array
<script>
// 創(chuàng)建
var a = new Array();
// 遍例
for(var i=0; i<a.length; i++)
{
var e = a[i];
}
// 添加
var item = new MenuItem("000");
this.itemArray.push(item);
</script>
怎么刪除一個元素?記得是直接賦值為null,過后測一下再補充。
數(shù)組作為成員變量
function Menu()
{
this.itemArray = new Array();
this.addItem = function(l, h, t)
{
var item = new MenuItem(l,h,t);
this.itemArray.push(item);
};
}
以上這篇JavaScript核心語法總結(jié)(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考