Javascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的面向?qū)ο蟮膭討B(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當時服務(wù)端需要對數(shù)據(jù)進行驗證,由于網(wǎng)絡(luò)速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。于是Netscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗證的基本功能。
Netscape公司在最初將其腳本語言命名為LiveScript。在Netscape在與Sun合作之后將其改名為JavaScript。JavaScript最初受Java啟發(fā)而開始設(shè)計的,目的之一就是“看上去像Java”[2],因此語法上有類似之處,一些名稱和命名規(guī)范也借自Java。但JavaScript的主要設(shè)計原則源自Self和Scheme[3]。JavaScript與Java名稱上的近似,是當時網(wǎng)景為了營銷考慮與Sun公司達成協(xié)議的結(jié)果。為了取得技術(shù)優(yōu)勢,微軟推出了JScript來迎戰(zhàn)JavaScript的腳本語言。為了互用性,Ecma國際(前身為歐洲計算機制造商協(xié)會)創(chuàng)建了ECMA-262標準(ECMAScript)。現(xiàn)在兩者都屬于ECMAScript的實現(xiàn)。盡管JavaScript作為給非程序人員的腳本語言,而非是作為給程序人員的編程語言來推廣和宣傳,但是JavaScript具有非常豐富的特性。
目前javascript的最新版本為1.9版。
布蘭登·艾奇(Brendan Eich,1964年~),JavaScript的發(fā)明人,目前(2007年)在Mozilla公司擔任首席技術(shù)長(Chief Technology Officer)。
JavaScript程序是由若干語句組成的,語句是編寫程序的指令。JavaScript提供了完整的基本編程語句,它們是:
賦值語句、switch選擇語句、while循環(huán)語句、for循環(huán)語句、for each循環(huán)語句、do...while循環(huán)語句、break循環(huán)中止語句、continue循環(huán)中斷語句、with語句、try…catch語句、if語句(if..else,if…else if…)。
函數(shù)是命名的語句段,這個語句段可以被當作一個整體來引用和執(zhí)行。使用函數(shù)要注意以下幾點:
1)函數(shù)由關(guān)鍵字function定義(也可由Function構(gòu)造函數(shù)構(gòu)造)
2)使用function關(guān)鍵字定義的函數(shù)在一個作用域內(nèi)是可以在任意處調(diào)用的(包括定義函數(shù)的語句前);而用var關(guān)鍵字定義的必須定義后才能被調(diào)用
3)函數(shù)名是調(diào)用函數(shù)時引用的名稱,它對大小寫是敏感的,調(diào)用函數(shù)時不可寫錯函數(shù)名
4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常量,也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以通過arguments對象(arguments對象是一個偽數(shù)組,屬性callee引用被調(diào)用的函數(shù))訪問所有參數(shù)
5)return語句用于返回表達式的值。
6)yield語句扔出一個表達式,并且中斷函數(shù)執(zhí)行直到下一次調(diào)用next。
一般的函數(shù)都是以下格式:
function myFunction(params){
//執(zhí)行的語句
}
函數(shù)表達式:
var myFunction=function(params){
//執(zhí)行的語句
}
var myFunction = function(){
//執(zhí)行的語句
}
myFunction();//調(diào)用函數(shù)
匿名函數(shù),它常作為參數(shù)在其他函數(shù)間傳遞:
window.addEventListener('load',function(){
//執(zhí)行的語句
},false);
JavaScript的一個重要功能就是面向?qū)ο蟮墓δ?,通過基于對象的程序設(shè)計,可以用更直觀、模塊化和可重復(fù)使用的方式進行程序開發(fā)。
一組包含數(shù)據(jù)的屬性和對屬性中包含數(shù)據(jù)進行操作的方法,稱為對象。比如要設(shè)定網(wǎng)頁的背景顏色,所針對的對象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍色。
用戶與網(wǎng)頁交互時產(chǎn)生的操作,稱為事件。事件可以由用戶引發(fā),也可能是頁面發(fā)生改變,甚至還有你看不見的事件(如Ajax的交互進度改變)。絕大部分事件都由用戶的動作所引發(fā),如:用戶按鼠標的按鍵,就產(chǎn)生click事件,若鼠標的指針在鏈接上移動,就產(chǎn)生mouseover事件等等。在JavaScript中,事件往往與事件處理程序配套使用。
而對事件的處理,W3C的方法是用addEventListener()函數(shù),它有三個參數(shù):事件,引發(fā)的函數(shù),是否使用事件捕捉。為了安全性,建議將第三個參數(shù)始終設(shè)置為false
傳統(tǒng)的方法就是定義元素的on…事件,它就是W3C的方法中的事件參數(shù)前加一個“on”。而IE的事件模型使用attachEvent和dettachEvent對事件進行綁定和刪除。JavaScript中事件還分捕獲和冒泡兩個階段,但是傳統(tǒng)綁定只支持冒泡事件?!?/p>
常用類型
object:對象
array:數(shù)組
number:數(shù)
boolean:布爾值,只有true和false兩個值,是所有類型中占用內(nèi)存最少的
null:一個空值,唯一的值是null
undefined:沒有定義和賦值的變量
命名形式
一般形式是:
var <變量名表>;
其中,var是javascript的保留字,表面接下來是變量說明,變量名表是用戶自定義標識符,變量之間用逗號分開。和C++等程序不同,在javascript中,變量說明不需要給出變量的數(shù)據(jù)類型。此外,變量也可以不說明而直接使用。
作用域
變量的作用域由聲明變量的位置決定,決定哪些腳本命令可訪問該變量。在函數(shù)外部聲明的變量稱為全局變量,其值能被所在HTML文件中的任何腳本命令訪問和修改。在函數(shù)內(nèi)部聲明的變量稱為局部變量。只有當函數(shù)被執(zhí)行時,變量被分配臨時空間,函數(shù)結(jié)束后,變量所占據(jù)的空間被釋放。局部變量只能被函數(shù)內(nèi)部的語句訪問,只對該函數(shù)是可見的,而在函數(shù)外部是不可見的。
javascript提供了豐富的運算功能,包括算術(shù)運算、關(guān)系運算、邏輯運算和連接運算。
1.算術(shù)運算符
javascript中的算術(shù)運算符有單目運算符和雙目運算符。雙目運算符包括:+(加)、-(減)、*(乘)、/(除)、%(取模)、|(按位或)、&(按位與)、<<(左移)、>>(右移)等。單目運算符有:-(取反)、~(取補)、++(遞加1)--(遞減1)等。
2.關(guān)系運算符
關(guān)系運算符又稱比較運算,運算符包括:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、=(等于)和!=(不等于)。
關(guān)系運算的運算結(jié)果為布爾值,如果條件成立,則結(jié)果為true,否則為false。
3.邏輯運算符
邏輯運算符有:&(邏輯與)、|(邏輯或)、?。ㄈ》矗壿嫹牵?、^(邏輯異或)。
4.字符串連接運算符
連接運算用于字符串操作,運算符為+(用于強制連接),將兩個或多個字符串連結(jié)為一個字符串。
5.三目操作符?:
三目操作符“?:”格式為:
操作數(shù)?表達式1:表達式2
三目操作符“?:”構(gòu)成的表達式,其邏輯功能為:若操作數(shù)的結(jié)果為true,則表述式的結(jié)果為表達式1,否則為表達式2。例如max=(a>b)?a:b;該語句的功能就是將a,b中的較大的數(shù)賦給max。
相關(guān)規(guī)則
在JavaScript中,“==="是全同運算符,只有當值相等,數(shù)據(jù)類型也相等時才成立。
等同運算符“=="的比較規(guī)則:
當兩個運算數(shù)的類型不同時:將他們轉(zhuǎn)換成相同的類型。
1)一個數(shù)字與一個字符串,字符串轉(zhuǎn)換成數(shù)字之后,進行比較。
2)true轉(zhuǎn)換為1、false轉(zhuǎn)換為0,進行比較。
3)一個對象、數(shù)組、函數(shù)與 一個數(shù)字或字符串,對象、數(shù)組、函數(shù)轉(zhuǎn)換為原始類型的值,然后進行比較。(先使用valueOf,如果不行就使用toString)
4)其他類型的組合不相等。
想兩個運算數(shù)類型相同,或轉(zhuǎn)換成相同類型后:
1)2個字符串:同一位置上的字符相等,2個字符串就相同。
2)2個數(shù)字:2個數(shù)字相同,就相同。如果一個是NaN,或兩個都是NaN,則不相同。
3)2個都是true,或者2個都是false,則相同。
4)2個引用的是同一個對象、函數(shù)、數(shù)組,則他們相等,如果引用的不是同一個對象、函數(shù)、數(shù)組,則不相同,即使這2個對象、函數(shù)、數(shù)組可以轉(zhuǎn)換成完全相等的原始值。
5)2個null,或者2個都是未定義的,那么他們相等。
而“===”是全同運算符,全同運算符遵循等同運算符的比較規(guī)則,但是它不對運算數(shù)進行類型轉(zhuǎn)換,當兩個運算數(shù)的類型不同時,返回false;只有當兩個運算數(shù)的類型相同的時候,才遵循等同運算符的比較規(guī)則進行比較。
例如:null==undefined 會返回真, 但是null===undefined 就會返回假!
表達式是指將常量、變量、函數(shù)、運算符和括號連接而成的式子。根據(jù)運算結(jié)果的不同,表達式可分為算術(shù)表達式、字符表達式、和邏輯表達式。
不同于服務(wù)器端腳本語言,例如PHP與ASP,JavaScript是客戶端腳本語言,也就是說JavaScript是在用戶的瀏覽器上運行,不需要服務(wù)器的支持而可以獨立運行。所以在早期程序員比較青睞于JavaScript以減少對服務(wù)器的負擔,而與此同時也帶來另一個問題:安全性。而隨著服務(wù)器的強壯,雖然現(xiàn)在的程序員更喜歡運行于服務(wù)端的腳本以保證安全,但JavaScript仍然以其跨平臺、容易上手等優(yōu)勢大行其道。
JavaScript是一種腳本語言,其源代碼在發(fā)往客戶端運行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給瀏覽器由瀏覽器解釋運行。解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條運行不了,那么下面的語言也無法運行。而且由于每次重新加載都會重新解譯,加載后,有些代碼會延遲至運行時才解譯,甚至會多次解譯,所以速度較慢。
與其相對應(yīng)的是編譯語言,例如Java。Java的源代碼在傳遞到客戶端運行之前,必須經(jīng)過編譯,因而客戶端上必須具有相應(yīng)平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實現(xiàn)獨立于某個特定的平臺編譯代碼的束縛。但是它必須在服務(wù)器端進行編譯,這樣就拖延了時間。但因為已經(jīng)封裝,所以能保證安全性。
庫,指得是可以方便應(yīng)用到現(xiàn)有開發(fā)體系中的、現(xiàn)成的代碼資源。庫不僅為大部分日常的DOM腳本編程工作提供了快捷的解決方案,而且也提供了許多獨特的工具。雖然庫使用起來很方便,但它們也并非能解決你所有的問題。在使用庫之前,一定要保證真正理解javascript的DOM原理。
這些庫一般是一個(或多個)js(Javascript的縮寫)文件,只要把他們導(dǎo)入你的網(wǎng)頁就能使用了。
jQuery:javascript庫中的新成員,提供css和xpath選擇符查找元素、ajax、動畫效果等
JSer: 國人開發(fā)的一款全功能的開源腳本框架. 借助JSer,可以便捷的操作DOM、CSS樣式訪問、屬性讀寫、事件綁定、行為切換、動態(tài)載入、數(shù)據(jù)緩存、URL與AJAX等眾多功能。
dojo:一個巨大的庫,包括的東西很多,dijit和dojox是dojo的擴展,幾乎你想要的各種javascript程序都包括了。
prototype:一個非常流行的庫,使用了原型鏈向javascript中添加了很多不錯的函數(shù)
YUI:(YahooYUI庫)yahoo!用戶界面,非常實用,提供各種解決方案。
ExtJs:組件非常豐富,皮膚也很漂亮,動畫效果也豐富。
Javascript就是適應(yīng)動態(tài)網(wǎng)頁制作的需要而誕生的一種新的編程語言,如今越來越廣泛地使用于Internet網(wǎng)頁制作上。Javascript是由 Netscape公司開發(fā)的一種腳本語言(scripting language),或者稱為描述語言。在HTML基礎(chǔ)上,使用Javascript可以開發(fā)交互式Web網(wǎng)頁。Javascript的出現(xiàn)使得網(wǎng)頁和用戶之間實現(xiàn)了一種實時性的、動態(tài)的、交互性的關(guān)系,使網(wǎng)頁包含更多活躍的元素和更加精彩的內(nèi)容。運行用Javascript編寫的程序需要能支持Javascript語言的瀏覽器。Netscape公司 Navigator 3.0以上版本的瀏覽器都能支持Javascript程序,微軟公司Internet Explorer 3.0以上版本的瀏覽器基本上支持Javascript。微軟公司還有自己開發(fā)的Javascript,稱為JScript。Javascript和Jscript基本上是相同的,只是在一些細節(jié)上有出入。 Javascript短小精悍,又是在客戶機上執(zhí)行的,大大提高了網(wǎng)頁的瀏覽速度和交互能力。 同時它又是專門為制作Web網(wǎng)頁而量身定做的一種簡單的編程語言。
JavaScript 使網(wǎng)頁增加互動性。JavaScript 使有規(guī)律地重復(fù)的HTML文段簡化,減少下載時間。JavaScript 能及時響應(yīng)用戶的操作,對提交表單做即時的檢查,無需浪費時間交由CGI 驗證。JavaScript 的特點是無窮無盡的,只要你有創(chuàng)意。
jquery庫、JSer庫、prototype
在如今網(wǎng)絡(luò)開發(fā)方面,JavaScript起了很關(guān)鍵的作用;像jQuery, MooTools, Prototype等等JavaScript框架以及其它JavaScript類庫讓我們的生活輕松了不少。但是隨著Rich Internet Applications(RIA)的面世及迅速應(yīng)用,書寫更強大,更堅實可靠的JavaScript的需要日益迫切。
javascript程序是純文本的,且不需要編譯,所以任何純文本的編輯器都可以編輯javascript文件。
JSLint –JavaScript的驗證器
JSLint取得一個JavaScript源代碼并對其掃描。如果發(fā)現(xiàn)問題,它送回信息描述問題狀況及在源代碼中的大概位置。問題不一定就出在句法上,不過常常正是這里出錯。JSLint查看一些風格約定和結(jié)構(gòu)問題,它證明不了程序是否正確。它只是提供了另一雙眼睛來幫助發(fā)現(xiàn)問題。
JsUnit
JsUnit是一個客戶端(內(nèi)瀏覽器)JavaScript單元測試框架。它其實是JUnit給JavaScript的一個口岸。其中還有一個平臺來在多個瀏覽器上以及運行不同操作系統(tǒng)的多個機器上的自動執(zhí)行測試。
YUI Test
YUI Test是一個測試框架,它針對基于瀏覽器的JavaScript解決方案。你可以用YUI Test在JavaScript 解決方案上輕松添加單元測試。
Obtrusive JavaScript Checker
可作為Firefox擴展,Greasemonkey用戶腳本,以及Ubiquity命令;Obtrusive JavaScript Checker是一種可以掃過頁面上所有元素的工具,發(fā)現(xiàn)帶有行內(nèi)事件的HTML元素(這是有危害性的,JavaScript應(yīng)該是不張揚的)時,它給這部分加紅邊使其凸顯?!?/p>
Crosscheck
Crosscheck是一個開源測試框架,驗證內(nèi)瀏覽器JavaScript代碼。它幫助你確保代碼可以在Internet Explorer和Firefox等種種不同的瀏覽器上運行,而這些瀏覽器都不需要安裝。
JSLitmus
JSLitmus是一個輕量級工具用來制作JavaScript的特定標準測試。
JavaScriptMVC的測試插件
JavaScriptMVC的測試庫提供事件模擬,單元測試,Ajax 夾具,和一個控制臺程序。
Javascript調(diào)試工具包
JavaScript調(diào)試工具包是一種跨瀏覽器調(diào)試JavaScript的eclipse plugin,它可以在IE,Firefox,Safari,Chrome,Opera甚至是移動瀏覽器上調(diào)試JavaScript。
Firebug
作為最受歡迎的網(wǎng)頁開發(fā)程序工具,F(xiàn)irebug是Firefox的一個插件,可以用它在任何網(wǎng)頁上現(xiàn)時編輯,調(diào)試和監(jiān)控CSS, HTML, 和JavaScript。它提供給JavaScript登陸和調(diào)試控制臺一些有用的功能如AJAX requests logging,JavaScript解釋器,DOM explorer等等。Firebug Lite 可以在IE, Opera, 和Safari上使用。
Venkman
Venkman為基于Gecko的瀏覽器提供功能強大JavaScript調(diào)試環(huán)境。這個調(diào)試器以Firefox & Mozilla插件的形式使用??梢栽谟脩艚缑嫔虾涂刂婆_命令中使用斷點管理,調(diào)用棧檢查,變量/對象檢查等功能,可以讓你以最習慣的方式調(diào)試。
NitobiBug
NitobiBug是一種基于瀏覽器的JavaScript對象記錄和檢查工具——與Firebug作用相似。NitobiBug在可以在不同的服務(wù)器(IE6+, Safari, Opera, Firefox)上運行以提供開發(fā)各種Ajax應(yīng)用程序一致且功能強大的工具。
DamnIT
DamnIT是一種免費服務(wù),當用戶在網(wǎng)頁上遇到JavaScript錯誤時它會給你發(fā)送電子郵件。
JS Bin
JS Bin是一種在線網(wǎng)絡(luò)應(yīng)用程序,為幫助JavaScript開發(fā)者在一定情景里測試代碼片段以及協(xié)作調(diào)試代碼而特別設(shè)計。你可以用JS Bin在線編輯測試JavaScript和HTML代碼。一旦完成,你可以將URL保存并發(fā)送給同伴來進行審查或獲得幫助。
Blackbird
許多JavaScript開發(fā)者僅僅使用alert)來顯示各種信息調(diào)試代碼。Blackbird在JavaScript上提供了記錄信息的簡單方式以及一個引人注意的控制臺程序來察看并過濾信息。
Online Javascript Compression Tool
一個可以用一些壓縮算法如JSMin 和Packer壓縮JavaScript文件的在線JavaScript壓縮器。壓縮的JavaScript文件是生產(chǎn)環(huán)境中的理想文件,因為它們常常將文件大小減小30-90%。在很大程度上,文件尺寸的縮小是通過除去網(wǎng)頁瀏覽者或訪問者不需要的注釋和多余的空格字符來實現(xiàn)的。
Scriptalizer
一個將多個JavaScript文件組合為一個文件的在線工具。
Dojo ShrinkSafe
一種命令行實用程序,允許你用瀏覽器縮小文件大小,從而縮短響應(yīng)時間。Dojo壓縮器不是建立在脆弱的規(guī)則表達式基礎(chǔ)上的。它基于來自莫茲拉專案的JavaScript引擎。由于一個基于真正的parse stream,Dojo壓縮器比基于規(guī)則表達式的工具可以更好體現(xiàn)代符(變量名等等)的環(huán)境。
YUI Compressor
The YUI Compressor是一種JavaScript壓縮器。去除注釋和空格之外,它還可以用最小可用變量名混淆局部變量。即使在使用‘eval’或‘with’之類構(gòu)造(在這些情況下壓縮并不合適),這種混淆也是安全的。與jsmin相比,它平均節(jié)省20%。
文件記載
jGrouseDoc
jGrouseDoc可以從源代碼中的注釋生成API文件。用戶可以用這個工具記載需要的所有構(gòu)造——不僅有函數(shù)和變量,還有類文件包,界面,命名空間,包和其它。使用那種JavaScript框架是無關(guān)緊要的——用戶可以不采取框架或工具強加的方式而以自己希望的方式記錄代碼,
格式化工具
JavaScript代碼美化工具
這個美化工具可處理散亂或壓縮的JavaScript代碼,不斷對其進行快速的格式化并使其可讀。
JSDoc Toolkit
JavaScript的一種文件產(chǎn)生器,以JavaScript形式寫成;它自動從加注的JavaScript源代碼中生成格式模版化,多頁面HTML(或XML, JSON, 抑或其它文本)。
瀏覽器擴展
Firefox, Flock & Seamonkey的網(wǎng)絡(luò)開發(fā)人員擴展
網(wǎng)絡(luò)開發(fā)人員拓展在瀏覽器中增加了一個菜單和工具條,其中包含許多網(wǎng)絡(luò)開發(fā)工具包括能使你的XHTML生效,發(fā)現(xiàn)JavaScript/CSS的錯誤,網(wǎng)頁結(jié)構(gòu)可視化,測試網(wǎng)絡(luò)表單,改變運行中的XHTML,檢查HTTP頭信息等等。
Opera Dragonfly
Opera Dragonfly 是Opera瀏覽器的跨設(shè)備,跨平臺調(diào)試環(huán)境—調(diào)試JavaScript, 檢查編輯CSS和DOM,并且查看移動設(shè)備或計算機上的錯誤。
IE6/7的開發(fā)者工具條
微軟的英特網(wǎng)瀏覽器開發(fā)者工具條為網(wǎng)頁的快速創(chuàng)建,理解和故障診斷提供了各種的工具。
其它相應(yīng)工具
Google的AJAX APIs Playground
AJAX API Playground裝載有Google JavaScript APIs(Maps, Search, Feeds, Calendar, Visualization, Language, Blogger, Libraries和Earth,等等)例子,你可以編輯運行這些例子幫助你探究Google的APIs可提供的功能。同時也還有保存和輸出功能。你可以用保存功能保持編輯的例子以留待以后使用。而輸出功能可用來修改例子并把代碼公布在一個永久的URL上。
QuirksMode –相容性表
檢查CSS2, CSS3, DOM Core, DOM HTML, DOM CSS, DOM Events 和CSS Object Model View主要瀏覽器相容性狀態(tài)的最受歡迎的出處。
HTML到JavaScript轉(zhuǎn)換器
HTML到JavaScript轉(zhuǎn)換器獲得置標并將它轉(zhuǎn)換成一系列可以在JavaScript塊中使用的document write()申明。
Glimmer
Glimmer是一種桌面應(yīng)用軟件,可以用它利用jQuery庫的作用在網(wǎng)頁上輕松制作交互式元素??梢杂盟p松制作交錯感受如旋轉(zhuǎn)相冊/報頭,下拉導(dǎo)航,懸停效果,或自定義動畫。
jQuery Function Builder
你可以用這個工具很快建立一個函數(shù)集,當頁面加載完畢/準備完畢時,調(diào)用該函數(shù)集。
JavaScript Regex Generator
一個制作正則表達式的在線工具。
Fiddler是一種Web調(diào)試代理,它記錄你的電腦和網(wǎng)絡(luò)之間所有的HTTP(S)流量。可以用Fiddler檢查所有HTTP(S)流量,設(shè)置斷點,干涉進來或出去的數(shù)據(jù)。
TamperData是一個追蹤并修改http/https請求的Firefox擴展??梢杂盟龌诰W(wǎng)絡(luò)的應(yīng)用程序的安全測試,追蹤請求/回應(yīng)。
可以在瀏覽的時候查看網(wǎng)頁的HTTP headers。可以用Live HTTP Headers調(diào)試網(wǎng)頁應(yīng)用程序,找出遠端網(wǎng)站使用的是那種網(wǎng)站服務(wù)器,或者查看遠端網(wǎng)站發(fā)送的小數(shù)據(jù)文件。
Aptana Studio是一個完整的網(wǎng)絡(luò)開發(fā)環(huán)境。它提供有JavaScript代碼自動完成和調(diào)試,HTML/CSS/JavaScript代碼提示,以及對重要的Ajax類庫的支持。Aptana Studio甚至給你頁面上所有的,包括你自己的JavaScript提供代碼提示。
Komodo Edit是一種免費開放的源編輯程序。它提供自動完成,調(diào)用提示,多種語言支持,語法高亮顏色顯示,語法檢查,Vi emulation,Emacs快捷鍵綁定等等功能。擴展Komodo Edit是其最實用的功能之一。你會發(fā)現(xiàn)各種對JavaScript開發(fā)者有用的擴展(如JSLint plugin for Komodo, Venkman JavaScript Debugger,等等)。
Spket IDE是JavaScript和XML開發(fā)功能強大的工具包。JavaScript, XUL/XBL and Yahoo! Widget開發(fā)功能強大的編輯器。JavaScript編輯器有代碼完成,語法高亮顯示和內(nèi)容概要等功能,這些功能幫助開發(fā)者高效制作出有效的JavaScript代碼。Spket IDE為非商業(yè)用途免費提供。
這是最常用的方法,大部分含有Javascript的網(wǎng)頁都采用這種方法,例如:
<script type="application/javascript">
<!--
document write("這是Javascript!采用直接插入的方法!");
//-Javascript結(jié)束-->
</script>
在這個例子中,我們可看到一個新的標簽:<script>……</script>,而<script language="Javascript"> 用來告訴瀏覽器這是用Javascript編寫的程序,需要調(diào)動相應(yīng)的解釋程序進行解釋。(w3c已經(jīng)建議使用新的標準:<script type="application/javascript">)
HTML的注釋標簽<!--和-->:用來去掉瀏覽器所不能識別的Javascript源代碼的,這對不支持Javascript 語言的瀏覽器來說是很有用的。
注意在非xhtml文檔中插入script標簽時,如果不是引用外部文件,應(yīng)該在script內(nèi)加上cdata聲明,避免大于和小于運算符引起的瀏覽器解析錯誤
//-Javascript結(jié)束:雙斜杠表示Javascript的注釋部分,即從//開始到行尾的字符都被忽略。 至于程序中所用到的document.write()函數(shù)則表示將括號中的文字輸出到窗口中去,這在后面將會詳細介紹。 另外一點需要注意的是,<script>……</script>的位置并不是固定的,可以包含在<head>……</head> 或<body>…..</body>中的任何地方。
還有一個更高級版本的嵌入腳本,它使用了HTML中的CDATA語法(Character Data,就是把CDATA中的文本全部當作純文本處理,除非遇到CDATA的結(jié)束)
<script language="javascript" type="text/javascript"><!--//--><!CDATA[[//><!--
//javascript代碼
//--><!]]></script>
如果已經(jīng)存在一個Javascript源文件(通常以js為擴展名),則可以采用這種引用的方式,以提高程序代碼的利用率。其基本格式如下:
<script src=“url” type="text/javascript"></script>
其中的Url就是程序文件的地址。同樣的,這樣的語句可以放在HTML文檔頭部或主體的任何部分。如果要實現(xiàn)“直接插入方式”中所舉例子的效果,可以首先創(chuàng)建一個Javascript源代碼文件“Script.js”,其內(nèi)容如下:
document write("這是Javascript!采用直接插入的方法!");
在網(wǎng)頁中可以這樣調(diào)用程序:<script src="Script.js" type="text/javascript"></script> 。
也可以同時在導(dǎo)入文件時制定javascript的版本,例如:<script src="Script.js" type="text/javascript; version=1.8"></script>
注意:凡是指定了src屬性的script標簽里的內(nèi)容都會被忽略。[1]
根據(jù)瀏覽器的提示信息
選擇瀏覽器是很重要的,不同的瀏覽器的錯誤提示都不同,在瀏覽器中錯誤信息最容易理解的,能最快找出錯誤的,就是firefox和opera了。它們都會給出詳細的出錯原因和行號。
使用調(diào)試工具
如果你是Firefox的用戶,那么你可以到添加組件的網(wǎng)頁中搜索一些用于網(wǎng)頁開發(fā)的組件
推薦:Firebug
一款非常優(yōu)秀的組件,可以指出你的腳本中的錯誤,查看DOM樹,查看cookie,ajax通信,并且還有CSS的調(diào)試工具,而且也有不少firebug的擴展。
javascript debugger
這是mozilla開發(fā)的調(diào)試工具,項目代號叫venkman,和gecko的javascript解析器無縫集成,功能非常強大。
清除瀏覽器緩存
有時瀏覽器會在網(wǎng)頁明明修改過的時候卻依然使用緩存里的網(wǎng)頁來顯示,這時最好強制刷新網(wǎng)頁以重新載入數(shù)據(jù),如果還不行就清除緩存。
輸出變量
如果你使用firebug調(diào)試的話,可以很方便地在腳本里用console.log()來輸出變量的值,而且幸運的是,firebug還會對你輸出的變量進行解析,在控制臺里顯示一個清晰的變量結(jié)構(gòu)
如果你沒有firebug,那么可以用alert代替,不過當有幾百個變量輸出時,很可能不得不強行關(guān)閉瀏覽器。在網(wǎng)頁里專門放置一個調(diào)試用的div也是一種不錯的解決辦法.
// shift 遞歸
function shiftLoop(arr) {
if (!!arr.length) {
sum += arr.shift();
arguments.callee(arr);
}
}[2]
方案一:啟用JavaScript。
菜單欄中“工具”中選擇“Internet選項”–>“安全”選項卡–>選擇“Internet”(藍色的小地球)–>“自定義級別”–>找到“腳本”下的“活動腳本”進行啟用和禁用。
方案二:解除某站點受限,以"http://hao.#"為例。
打開IE的“工具”,選擇“Internet選項”,在“安全”選項卡中,選擇“受限站點”,點擊“站點”,選中“http://hao.#”,點擊“刪除”即可。
方案三:升級IE瀏覽器
如果方案一及方案二都沒有解決,可能由于瀏覽器版本低引起的,
建議升級IE瀏覽器,可下圖的方法通過360軟件管家升級到IE瀏覽器 (舉例升級為IE8)。
點擊地址欄最右邊扳手開關(guān)按鈕,選擇“選項”,點擊“高級選項”→“內(nèi)容設(shè)置”→“JavaScript”,選擇“允許所有網(wǎng)站運行 JavaScript(推薦)”。如下圖:
第一步:下載安裝360安全衛(wèi)士。
第二步:安裝完成后,打開360安全衛(wèi)士-系統(tǒng)修復(fù)-電腦門診-我的瀏覽器不能正常工作-選擇“我的瀏覽器不穩(wěn)定,經(jīng)常出現(xiàn)崩潰、報錯、非法關(guān)閉等問題”-下一步-按提示重置IE瀏覽器的web設(shè)置-下一步-恢復(fù)后關(guān)閉。
聯(lián)系客服