JavaScript核心語法總結(jié)(推薦)
本文介紹了JavaScript的基本(常用)語法,供大家參考。
Overview
先說一下Javascript該怎么寫。兩種形式,一種是直接把JavaScript寫在HTML頁面里,另一種是存在*.js文件里然后在頁面內(nèi)引用。
直接寫時(shí),即可以放在<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)用一個(gè)function或時(shí),必須保證該function已經(jīng)被解析/聲明了。這也是一般要把function定義放在<head>內(nèi)的原因。
所有的function與變量只在本頁面內(nèi)有效,當(dāng)離開頁面后,新的頁面內(nèi)無法訪問上一頁內(nèi)聲明的變量或函數(shù)。如果一定要訪問的話,可以用Cookie也存一下,到下一頁再讀出來。
syntax - 變量
變量定義就以var開頭即可,就可以定義了一個(gè)變量了。放在函數(shù)體內(nèi)的就認(rèn)為局部變量,外面的就是全局變量。需要指出的是,JavaScript的語法是很亂的,變量也有別的定義方法。但是希望大家不要使用其他亂七八糟的語法,就使用這種最常見的語法就可以,足夠用,而且省腦筋。
關(guān)于變量大家需要明白
(1) 變量是弱類型的,一個(gè)整數(shù)甚至可以與字符串直接相加,得到一個(gè)字符串
(2) 所謂全局變量,也只是在當(dāng)前頁面內(nèi)有效,當(dāng)頁面被unload跳到另一個(gè)頁面時(shí),所有的變量都被銷毀了。這些全局變量跟流覽器(也稱為User Agent)內(nèi)嵌變量有區(qū)別,每個(gè)頁面都自動(dòng)有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.dbjr.com.cn')" >
FORM元素事件回調(diào)
<select name="somelist" onchange="onSomeThingChanged()">
超鏈接目標(biāo)
<a href="javascript:goToUrl('www.dbjr.com.cn')" > go </a>
直接在JavaScript中調(diào)用
<script> goToUrl(”www.dbjr.com.cn"); </script>
syntax - 類
一般的JavaScript是不需要使自定義類的,就是說一般不會(huì)到達(dá)這么復(fù)雜的程度。因?yàn)槭悄_本語言嘛,隨便寫幾句就好。一是難調(diào)試,二是不便閱讀。但是如果一定要寫什么復(fù)雜的功能,如菜單樹之類的,那么就得寫一點(diǎn)類來完成了。
同樣,類在JavaScript里也是有2種定義格式的,我們會(huì)下面的格式就好了,另一種格式很爛,還是不要知道為好。
先來個(gè)不帶構(gòu)造參數(shù)的:
<script> function SampleClass() { // 變量變量定義 this.nId = 10; // 成員函數(shù)定義 this.plusId = function (nPlus) { return this.nId + nPlus; } } </script>
再來一個(gè)造參數(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)建類的實(shí)例
var item = new MenuItem("haha", http://www.dbjr.com.cn, null);
關(guān)于類,注意以下幾點(diǎn):
(1) 不要從頭寫一個(gè)類,請從我這里copy過去再改,這樣就不會(huì)有那些莫名其妙的麻煩了
(2) 在成員函數(shù)里引用成員變量,一定要加this.,不然引用不到
(3) 成員函數(shù)如果想返回值,就用return,想return什么類型都不必事先聲明,直接return就好
(4) 對于學(xué)習(xí)C++和Java的程序員來說,要明白var p = new SomeClass();這句中的new其實(shí)就是創(chuàng)建一個(gè)對象并返回其指針
(5) 考慮使用Object類
syntax - Object類
JavaScript語法很亂的,腳本語言嘛,要求不要太高。雖然可以自定義類,但大數(shù)多情況下都不需要自己聲明一個(gè)類,可以直接使用Object類來定義一個(gè)結(jié)構(gòu),而無需事先聲明這個(gè)結(jié)構(gòu)的形式。
如:
function createObject() { var obj = new Object(); obj.x = 10; obj.y = 11; return obj; }
看到?jīng)],這個(gè)函數(shù)隨意的創(chuàng)建了一個(gè)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>
怎么刪除一個(gè)元素?記得是直接賦值為null,過后測一下再補(bǔ)充。
數(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)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
javascript之函數(shù)直接量(function(){})()
javascript之函數(shù)直接量(function(){})()...2007-06-06簡介JavaScript中toUpperCase()方法的使用
這篇文章主要介紹了JavaScript中的toUpperCase()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06JavaScript instanceof 的使用方法示例介紹
判斷一個(gè)變量的類型嘗嘗會(huì)用 typeof 運(yùn)算符而他畢竟有些缺陷,就是無論引用的是什么類型的對象,它都返回object,這時(shí)就要用到instanceof來檢測某個(gè)對象是不是另一個(gè)對象的實(shí)例2013-10-10