第1章 JavaScript基礎

1.1  爲何學習JavaScriptjavascript

JavaScript在網頁製做中佔有很是重要的地位。前端

一、 客戶端表單驗證java

網站中常常見到的會員登陸、註冊,咱們填寫登陸、註冊信息時,若是某項信息格式輸入錯誤,或沒有輸入內容,表單頁面將及時給出錯誤提示。這些錯誤在提交到服務器前,由客戶端提早進行驗證,稱爲客戶端表單驗證。編程

二、 頁面動態效果數組

JavaScript中,能夠編寫響應鼠標單擊等事件的代碼,建立動態頁面特效,從而高效地控制頁面的內容。瀏覽器

雖然JavaScript能夠實現許多動態效果,但要實現一個特效代碼量大,而使用jQuery(JavaScript程序庫)能夠用極少的代碼實現一樣的效果。安全

三、 jQuery基礎服務器

JavaScript是學習jQuery的基礎。網絡

1.2 什麼是JavaScriptapp

JavaScript是一種描述性語言,也是一種基於對象(Object)和事件驅動(Event Driven)的,並具備安全性能的腳本語言。它與HTML(超文本標記語言)一塊兒,在一個Web頁面中連接多個對象,與Web客戶實現交互。不管在客戶端仍是在服務器端,JavaScript應用程序都要下載到瀏覽器的客戶端執行,從而減輕了服務器端的負擔。

特色:

→ JavaScript主要用來在HTML頁面中添加交互行爲。

→ JavaScript是一種腳本語言,語法和Java相似。

→ JavaScript通常用來編寫客戶端的腳本。

→ JavaScript是一種解釋性語言,邊執行邊解釋。

ECMAScript是一種腳本語言的標準,JavaScript語言就是遵循ECMAScript標準的一種實現。

1.2.1 JavaScript的組成

一個完整的JavaScript由三個部分組成:ECMAScriptBOMCOM

一、 ECMAScript標準

ECMAScript是一種開放的、被國際上廣爲接受的、標準的腳本語言規範。它不與任何具體的瀏覽器綁定。ECMAScript標準主要描述瞭如下內容:

→ 語法。

→ 變量和數據類型。

→ 運算符。

→ 邏輯控制語句。

→ 關鍵字、保留字。

→ 對象。

ECMAScript是一個描述,規定了腳本語言的全部屬性、方法和對象的標準,所以在使用Web客戶端腳本語言編碼時必定要遵循ECMAScript標準。

二、 瀏覽器對象模型

瀏覽器對象模型(Browser Object Model,BOM),提供了獨立於內容與瀏覽器窗口進行交互的對象,使用瀏覽器對象模型能夠實現與HTML的交互,如網上常見的彈出窗口、前進後退等功能都是瀏覽器對象控制的。

三、 文檔對象模型

文檔對象模型(Document Object Model,DOM),是HTML文檔對象模型(HTML DOM)定義的一套標準方法,用來訪問和操縱HTML文檔,如網上商城常見的隨鼠標移動顯示大的圖片、彈出小提示等都是文檔對象的功勞。

1.2.2 JavaScript的基本結構

JavaScript代碼是用<script>標籤嵌入HTML文檔中。瀏覽器遇到<script>標籤時,將逐行讀取內容,直到遇到</script>結束標籤爲止。而後,瀏覽器將檢查JavaScript語句的語法,若是有任何錯誤,則會在警告框中顯示;若是沒有錯誤,則瀏覽器將編譯並執行語句。

一、 JavaScript的基本結構

JavaScript的基本結構以下:

<script type=」text/javascript」>

JavaScript語句;

</script>

其中type<script>標籤的屬性,用於指定文本使用到的語言類別爲text/javascript

注意:有的網頁中用默認text/javascript」,這種寫法是正確的,由於HTML5中可省略type屬性,HTML5默認爲text/javascript

document.write()用來向頁面輸出能夠包含HTML標籤的內容。

經驗:

若是不使用<script>標籤,瀏覽器就會將document.write(「<h1>Hello,JavaScript</h1>」)看成純文原本處理,也就是說會把這條命令自己寫到頁面上。

→ <script>…</script>的位置並非固定的,能夠包含在文檔的任何地方,只要保證這些代碼在被使用前已讀取並加載到內存便可。

二、 JavaScript的執行原理

JavaScript的執行過程當中,瀏覽器客戶端與應用服務器端採用請求/響應模式進行交互。

(1) 瀏覽器客戶端向服務器端發送請求:一個用戶在瀏覽器的地址欄中輸入要訪問的頁面(頁面中包含JavaScript程序)。

(2) 數據處理:服務器端將某個包含JavaScript的頁面進行處理。

(3) 發送響應:服務器端將含有JavaScriptHTML文件處理頁面發送到瀏覽器客戶端,而後由瀏覽器客戶端從上而下逐條解析HTML標籤和JavaScript,並將頁面效果呈現給用戶。

使用客戶端腳本的好處:

(1) 包含JavaScript的頁面只要下載一次便可,這樣能減小沒必要要的網絡通訊。

(2) JavaScript程序由瀏覽器客戶端執行,而不是由服務器端執行,所以能減輕服務器端的壓力。

1.2.3 在網頁中引用JavaScript的方式

JavaScript做爲客戶端程序,嵌入網頁時有如下三種方式。

內部JavaScript文件。

使用外部JavaScript文件。

直接在HTML標籤中。

一、 內部JavaScript文件

直接使用<script>標籤將JavaScript代碼加入HTML文檔中。這是最經常使用的方式,但這種方式一般適用於JavaScript代碼較少,而且網站中的每一個頁面使用的JavaScript代碼均不相同的狀況。

二、 使用外部JavaScript文件

外部JavaScript文件是將JavaScript代碼寫入一個外部文件中,以*.js爲擴展名保存,而後將該文件指定給<script>標籤中的「src」屬性,這樣就可使用這個外部文件了。這種方式適用於在若干個頁面實現相同的JavaScript效果。

不管是使用<script>標籤在網頁中編寫JavaScript代碼,仍是引用js文件,瀏覽器都會按照<script>標籤在頁面中出現的前後順序對它們依次進行解析。所以若是將<script>標籤放在<head>中,那麼意味着必須等到所有JavaScript代碼被下載、解析和執行完成以後,纔開始呈現網頁內容,這樣對於許多包含JavaScript代碼的頁面來講,會致使瀏覽器呈現頁面時出現明顯的延遲,而延遲期間瀏覽器窗口將一片空白。爲了不這個問題,如今許多網頁開發者會把<script>標籤放在<body>中,而且放在頁面內容的後面。

注意:外部文件不能包含<script>標籤,一般將擴展名爲.js的文件放到網站目錄中單獨存放腳本的子目錄中(通常爲js),這樣容易管理和維護。

三、 直接在HTML標籤中

有時須要在頁面中加入簡短的JavaScript代碼實現一個簡單的頁面效果,如單擊按鈕時彈出一個對話框等,這樣一般會在按鈕事件中加入JavaScript處理程序。

<input name=」btn」 type=」button」 value=」彈出消息框 onclick=」javascript:alert(‘歡迎你);」/>

onclick是單擊的事件處理程序,當用戶單擊按鈕時,就會執行執行「javascript:」後面的JavaScript命令,alert()是一個函數,相似Java中的方法,做用是向頁面彈出一個對話框。

這三種方式的應用場合。

內部JavaScript文件適用於JavaScript特效代碼量少,僅用於單個頁面。

外部js文件則適用於代碼較多,重複應用於多個頁面。

直接在標籤中寫JavaScript則適合於極少代碼,僅用於當前標籤,可是這種方式增長了HTML代碼,所以這種方式在實際開發中應用較少。

1.3 JavaScript核心語法

1.3.1 變量的聲明和賦值

JavaScript是一種弱類型語言,沒有明確的數據類型,也就是說,在聲明變量時,不須要指定變量的類型,變量的類型由賦給變量的值決定。

JavaScript中,變量是使用關鍵字var聲明的。

語法:

var 合法的變量名;

其中var是聲明變量所使用的關鍵字;「合法的變量名」是遵循JavaScript變量命名規則的變量名。JavaScript變量命名規則與Java變量命名規則相同,便可以由數字、字母、下劃線和「$」符號組成,但首字母不能是數字,而且不能使用關鍵字命名。能夠在聲明變量的同時爲變量賦值,這稱爲變量的初始化;也能夠在稍後的腳本中爲變量賦值。

聲明變量的同時爲變量賦值,例如:

var width=20;//在聲明變量width的同時,將數值20賦給了變量width

var x,y,z=10;//在一行代碼中聲明多個變量時,各變量之間用逗號分隔

JavaScript區分大小寫,因此大小寫不一樣的變量名錶示不一樣的變量。另外,因爲JavaScript是一種弱類型語言,所以容許不聲明變量而直接使用,系統將會自動聲明該變量,例如:

x=68;//沒有聲明變量x,直接使用

規範

千萬要注意JavaScript區分大小寫,特別是變量的命名、語句關鍵字等,這種錯誤有時很難查找。

→ 變量能夠不通過聲明而直接使用,但這種方法很容易出錯,也很難查找排錯,所以不推薦使用,在使用變量以前,請先聲明後使用,這是良好的編程習慣。

1.3.2 數據類型

經常使用的基本數據類型以下。

→ undefined(未定義類型)。

→ null(空類型)。

→ number(數值類型)。

→ String(字符串類型)。

→ boolean(布爾類型)。

一、 typeof

ECMAScript提供了typeof運算符來判斷一個值或變量究竟屬於哪一種數據類型。

語法:

typeof(變量或值)

其返回結果有如下幾種。

→ undefined:若是變量是undefined類型的,則返回undefined類型的結果。

→ number:若是變量是number類型的,則返回number類型的結果。

→ string:若是變量是string類型的,則返回string類型的結果。

→ boolean:若是變量是boolean類型的,則返回boolean類型的結果。

→ object:若是變量是null類型的,或者變量是一種引用類型,如對象、函數、數組,則返回object類型的結果。

二、 undefined類型

undefined類型只有一個值,即undefined。當聲明的變量未初始化時,該變量的默認值是undefined。例如:

var width;

這行代碼聲明瞭變量width,且此變量沒有初始值,將被賦予值undefined

三、 null類型

只有一個值的類型是null,是一個表示「什麼都沒有」的佔位符,能夠用來檢測某個變量是否被賦值。值undefined其實是值null派生來的,所以JavaScript把它們定義爲相等的,例如:

alert(null==undefined);//返回值爲true

儘管這兩個值相等,但它們的含義不一樣,undefined表示聲明瞭變量但未對該變量賦值,null則表示對該變量賦予了一個空值。

四、 number類型

JavaScript中定義的最特殊的類型是number類型,這種類型既能夠表示32位的整數,又能夠表示64位的浮點數。下面的代碼聲明瞭存放整數值和浮點數值的變量。

var iNum=32;

var iNum=32.0;

整數也能夠表示爲八進制或十六進制,八進制首數字必須是0,其後的數字能夠是任何八進制數字(0~7);十六進制首數字也必須是0,後面是任意的十六進制數字和字母(0~9A~F)。

例如:

var iNum=070;//070等於十進制的56

var iNum=0x1f;//0x1f等於十進制的31

對於很是大或很是小的數,能夠用科學計數法表示浮點數,也是number類型。另一個特殊值NaN(Not a Number)表示非數,它是number類型。例如:

typeof(NaN);//返回值爲number

五、 String類型

1) 字符串定義

JavaScript中,字符串是一組被引號(單引號或雙引號)括起來的文本。例如:

var string1=」This is a string」;//定義了一個字符串string1

Java不一樣,JavaScript不對「字符」或「字符串」加以區別,所以下面的語句也定義了一個字符串。

var oneChar=」a」;//定義了只有一個字符「a」的字符串

2) 字符的屬性與方法

JavaScript語言中的String也是一種對象。它也有一個length屬性,表示字符串的長度(包括空格等),調用length的語法格式以下。

語法:

字符串對象.length;

var str=」this is JavaScript」;

var strLength=str.length;

JavaScript中,字符串對象的使用語法格式以下。

語法:

字符串對象.方法名();

String對象經常使用方法

方法

描述

indexOf()

查找某個指定的字符串在字符串中首次出現的位置

charAt(index)

返回在指定位置的字符

toLowerCase()

把字符串轉化爲小寫

toUpperCase()

把字符串轉化爲大寫

substring(index1,index2)

返回位於指定索引index1index2之間的字符串,而且包括索引index1對應的字符,不包括index2對應的字符

split(str)

將字符串分割爲字符串數組

最經常使用的是indexOf(str,index)方法,若是找到了指定字符串,則返回索引位置,不然返回-1

index是可選的整數參數,表示從第幾個字符開始查找。

六、 boolean類型

boolean類型數據被稱爲布爾型數據或邏輯型數據,boolean類型是ECMAScript中經常使用的類型之一,它只有兩個值,truefalse

1.3.3 數組

Java中的數組同樣,JavaScript中的數組也是具備相同數據類型的一個或多個值的集合。數組用一個名稱存儲一系列的值,用下標區分數組中的每一個值,數組的下標從0開始。

JavaScript中的數組也須要先建立、賦值,再訪問數組元素,並經過數組的一些方法和屬性對數組元素進行處理。

一、 建立數組

語法:

var 數組名稱=new Array(size);

其中,new是用來建立數組的關鍵字,Array表示數組的關鍵字,而size表示數據中可存放的元素總數,所以size用整數來表示。

二、 爲數組元素賦值

在聲明數組時,能夠直接爲數組元素賦值。

語法:

var fruit=new Array(「apple」,」orange」,」peach」,」banana」);

也能夠分別爲數組元素賦值。例如:

var fruit = new Array(4);

fruit[0]=」apple」;

fruit[1]=」orange」;

fruit[2]=」peach」;

fruit[3]=」banana」;

另外,除了Array()對象外,數組還能夠方括號「[」和「]」來定義。例如:

var fruit = [「apple」,」orange」,」peach」,」banana」];

三、 訪問數組元素

能夠經過數組的名稱和下標直接訪問數組的元素,訪問數組的表示形式:數組名[下標]

四、 數組的經常使用屬性和方法

數組的經常使用方法和屬性

類別

名稱

描述

屬性

length

設置或返回數組中元素的數目

 方法

join()

把數組的全部元素放入一個字符串,經過一個分隔符進行分隔

sort()

對數組排序

push()

向數組末尾添加一個或多個元素,並返回新的長度

1) length

數組的length屬性用於 返回數組中元素的個數,返回值爲整型。若是在建立數組時就指定了數組的size值,那麼不管數組元素中是否存儲了實際數據,該數組的length值都是這個指定的長度值size。例如,var score=new Array(6);無論數組中的元素是否存儲了實際數據,score.length的值老是6

2) join()

join()方法經過一個指定的分隔符把數組元素放在一個字符串中。

語法:

join(分隔符);

1.3.4 運算符號

經常使用的運算符

類別

運算符號

算術運算符

+-*/%==--

比較運算符

><>=<===!====!==

邏輯運算符

&&||!

賦值運算符

=+=-=

其中==表示等於===表示恆等!==表示不恆等,都是用於比較,可是==用於通常比較,===用於嚴格比較,==在比較時能夠轉換數據類型,===嚴格比較,只要數據類型不匹配就返回false。例如,」1」==true返回true,而」1」===true返回false

1.3.5 邏輯控制語句

邏輯控制語句分爲兩類:條件結構和循環結構。

一、 條件結構

Java同樣,JavaScript的條件結構也分爲if結構和switch結構。

1) if結構

基本語法格式以下。

語法:

if(表達式){

//JavaScript語句1;

}

else{

//JavaScript語句2;l

}

其中,當表達式的值爲true時,執行JavaScript語句1,不然執行JavaScript語句2.

注意:若是ifelse後只有一條語句,則能夠省略大括號;若是ifelse後有多行語句,則JavaScript語句必須括在大括號內。

2) switch結構

基本語法格式以下。

語法:

switch(表達式){

case 1:

//JavaScript語句1;

break;

case 2:

//JavaScript語句2;

break;

……

default:

//JavaScript語句n;

break;

}

Java相似,當用於等值的多分支比較時,使用switch語句可使程序的結構更加清晰。case表示條件判斷,關鍵字break會使代碼跳出switch語句,若是沒有關鍵字break,代碼就會繼續執行,進入下一個case。關鍵字default說明表達式的結果不等於任何一種狀況。

Java中的switch語句不一樣的是,在JavaScript中的switch語句能夠用於字符串。例如:

var weekday=」星期一;

switch(weekday){

case 「星期一:

alert(「新的一週開始了);

break;

case 「星期五:

alert(「明天就能夠休息了);

break;

default:

alert(「努力工做);

break;

}

二、 循環結構

JavaScript中的循環結構分爲for循環、while循環、do-while循環、for-in循環。

1) for循環語句

語法:

for(初始化;條件;增量或減量;){

//JavaScript語句;

}

其中,初始化參數告訴循環的開始值,必須賦予變量初值;條件用於判斷循環是否終止,若知足條件,則繼續執行循環體中的語句,不然跳出循環;增量或減量定義循環控制變量在每次循環時怎麼變化。在三個條件之間,必須使用分號(;)隔開。

2) while循環語句

語法:

while(條件){

//JavaScript語句;

}

其特色是先判斷後執行,當條件爲真時,就執行JavaScript語句;當條件爲假時,就退出循環。

3) do-while循環語句

語法:

do{

//JavaScript語句;

}while(條件);

該語句表示反覆執行JavaScript語句,直到條件爲假時才跳出循環。與while循環語句的區別在於,do-while循環語句先執行再判斷。

4) for-in循環

JavaScript提供了for-in循環經常使用於對數組或者對象的屬性進行循環操做。

語法:

for(變量 in 對象){

//JavaScript語句;

}

其中,「變量」爲指定的變量,能夠是數組元素,也能夠是對象的屬性。例如:

var fruit = [「apple」,」orange」,」peach」,」banana」];

for(var i in fruit){

document.write(fruit[i]+」<br/>」);

}

5) 中斷循環

break:能夠當即跳出整個循環。

continue:只是退出當前的循環,根據判斷條件決定是否進行下一次循環。

1.3.6 註釋

註釋是描述部分程序功能或整個程序功能的一段說明性文字,註釋不會被解釋器執行,而是會被直接跳過。註釋的功能是幫助開發人員閱讀、理解、維護和調試程序。JavaScript語言的註釋分爲單行註釋和多行註釋兩種。

單行註釋,以//開始,以行末結束。

多行註釋,以/*開始,以*/結束。

1.3.7 關鍵字和保留字

關鍵字標識了ECMAScript語句的開頭和結尾,關鍵字是保留的,不能用做變量名或函數名。

JavaScript的關鍵字

關鍵字

關鍵字

關鍵字

關鍵字

關鍵字

break

case

catch

continue

default

delete

do

else

finally

for

function

if

in

instanceof

new

return

switch

this

throw

try

typeof

var

void

while

with

保留字在某種意義上是爲未來的關鍵字而保留的單詞所以保留字不能被用做變量名或函數名

JavaScript的保留字

保留字

保留字

保留字

保留字

保留字

abstract

boolean

byte

char

class

const

debugger

double

enum

export

extents

final

float

goto

implements

import

int

interface

long

native

package

private

protected

public

short

static

super

synshronized

throws

transient

volatile

 

 

 

 

 

1.3.8 經常使用的輸入/輸出

在網上衝浪時,頁面上常常會彈出一些信息提示框,如註冊時彈出提示輸入信息的提示框,或者彈出一個等待用戶輸入數據的對話框等,這樣的輸入/輸出在JavaScript中稱爲警告對話框(alert)和提示對話框(prompt)

一、 警告(alert)

語法:

alert(「提示信息);

該方法將彈出一個警告對話框,其內容能夠是一個變量的值,也能夠是一個表達式的值。

警告對話框是當前運行的網頁彈出的,在對該對話框作出處理前,當前網頁將不可用,後面的代碼也不會被執行,只有對警告對話框進行處理後(單擊「肯定」按鈕或直接關閉),當前網頁纔會繼續顯示後面的內容。

二、 提示(prompt)

prompt()方法會彈出一個提示對話框,等待用戶輸入一行數據。

語法:

prompt(「提示信息,」輸入框的默認信息);

該方法的返回值也能夠被引用或存儲到變量中,例如:

var color=prompt(「請輸入你喜歡的顏色,」紅色);

prompt()方法的第一個參數值顯示在對話框上,一般是一些提示信息;第二個參數出如今用戶輸入的文本框中,且被選中,做爲默認值使用。若是省略第二個參數,則提示對話框的輸入文本框中會出現「undefined」,能夠將第二個參數的值設置爲空字符串,例如:

var color=prompt(「請輸入你喜歡的顏色,」」);

若是用戶單擊「取消」按鈕或者直接關閉提示對話框,則該方法將返回null;若是用戶單擊「肯定」按鈕,則該方法將返回一個字符串型數據。

1.3.9 語法約定

一、 大小寫的區分

JavaScript區分大小寫,大寫字母和小寫字母是不能互相替換的,幾個基本規則以下。

→ JavaScript的關鍵字,如forif,永遠都是小寫的。

內置對象,如MathDate是以大寫字母開頭的。

對象的名稱一般是小寫,如fruit。但其方法常常是多個單詞的大小寫混合,一般第一個字母是小寫,以後單詞的首字母是大寫,如charAt()

二、 變量、對象和函數的名稱

當聲明使用變量、對象或函數時,名稱能夠包括大寫字母、小寫字母、下劃線和美圓符號($),可是必須以字母、下劃線或美圓符號($)開頭。

能夠選擇在變量名稱中使用大寫字母或小寫字母,但必須牢記JavaScript是區分大小寫的,countCountCOUNT是三個不一樣的變量。

三、 分號

JavaScript容許開發者自行決定是否以分號結束一行代碼,若是沒有分號,JavaScript就將行代碼的結尾看做該語句的結尾。但不推薦使用,由於不屬於規範的代碼編寫風格。

1.4 程序調試

JavaScript中可使用Chrome調試工具和alert()方法兩種方式調試程序。

1.4.1 Chrome開發人員工具

一、 語法錯誤的排除

使用Chrome瀏覽器打開HTML文件,按F12鍵進入腳本調試界面,表示開啓運行時錯誤自動暫停功能,準肯定位出錯腳本的位置;自動暫停按鈕下方有一個選項,Pause On Caught Exception,若是選中,則即便發生運行時異常代碼在try/catch範圍內,Chrome開發者工具也可以在錯誤處停住。

Chrome的開發者工具經常使用八個大模塊,每一個模塊及其主要功能以下。

→ Elements:用於查看和編輯當前頁面中的HTMLCSS元素。

→ Console:用於顯示腳本中所輸出的調試信息,或運行測試腳本等。

→ Sources:用於查看和調試當前頁面所加載的腳本的源文件。

→ Network:用於查看HTTP請求的詳細信息,如請求頭、響應頭及返回內容等。

→ TimeLine:用於查看腳本執行時間,頁面元素渲染時間等信息。

→ Profiles:用於查看CPU執行時間與內存佔用等信息。

→ Resource:用於查看當前頁面所請求的資源文件,如HTMLCSS樣式文件等。

→ Audits:用於優化前端頁面,加速網頁加載速度等。

二、 邏輯錯誤的排除

1) 肯定設置斷點的位置

 

中止斷點調試。

單步調試,不進入函數體內部。

單步調試,進入函數體內部。

跳出當前函數。

禁用全部的斷點,不作任何調試。

2) 單步調試

3) 修改錯誤

1.4.2 alert()方法

經過alert()方法將不肯定的數據以信息框的方式展現,以此來判斷出現錯誤的位置。

1.5 JavaScript經常使用語法——函數

JavaScript中,函數相似於Java中的方法,是執行特定功能的JavaScript代碼塊。可是JavaScript中的函數使用更簡單,不用定義函數屬於哪一個類,所以調用時不須要用「對象名.方法名()」的方式,直接使用函數名稱來調用函數便可。

JavaScript中的函數有兩種,一種是JavaScript自帶的系統函數,另外一種是用戶自行建立的自定義函數。

1.5.1 經常使用系統函數

JavaScript提供了兩種把非數字的原始值轉換成數字的函數,即parseInt()parseFloat()。另外,它還提供了一個檢查是不是非數字的函數isNaN(),一般用於邏輯判斷。

一、 parseInt()

parseInt()函數可解析一個字符串,並返回一個整數。

語法:

parseInt(「字符串)

從位置0開始查看每一個字符,若0處就不是有效數字,則返回

NaN,若0處是有效數字,直到找到第一個非有效的字符爲止,而後把該字符以前的字符串轉換爲整數。

二、 parseFloat()

parseFloat ()函數可解析一個字符串,並返回一個浮點數。

語法:

parseFloat(「字符串」)

從位置0開始查看每一個字符,若0處就不是有效數字,則返回

NaN,若0處是有效數字,直到找到第一個非有效的字符爲止,而後把該字符以前的字符串轉換爲浮點數。

對於這個函數來講,第一個出現的小數點是有效字符,若是有兩個小數點,那麼第二個小數點被看做無效。

三、 isNaN()

isNaN()函數用於檢查其參數是不是非數字。

語法:

isNaN(x)

若是x是特殊的非數字值,則返回值是true,不然返回false

經驗:isNaN()函數一般用於檢測parseInt()parseFloat()的結果,以判斷它們表示的是不是合法的數字,也能夠用isNaN()函數來檢測算數是否錯誤,如用0做爲除數的狀況。

1.5.2 自定義函數

JavaScript須要先定義函數,而後才能調用函數。

一、 定義函數

JavaScript中,自定義函數由關鍵字function、函數名、一組參數及置於括號中的待執行的JavaScript語句組成。

語法:

function 函數名(參數1,參數2,參數3…){

//JavaScript語句;

[return返回值]

}

→ function是定義函數的關鍵字,必須有。

參數1、參數2等是函數的參數。由於JavaScript自己是弱類型,因此它的參數也沒有類型檢查和類型限定。函數中的函數是可選的,根據函數是否帶參數,可分爲不帶參數的無參函數和有參函數。例如,無參函數:

function 函數名{

//JavaScript語句;

}

→ 「{」和「}」定義了函數的開始和結束。

→ return語句用來規定函數返回的值。

二、 調用函數

要執行一個函數,必須先調用這個函數,當調用函數時,必須指定函數名及其後面的參數(若是有參數)。函數的調用通常和元素的事件結合使用。

語法:

事件名=」函數名()」;

無參函數例:

<input name="btn" type="button" value="顯示5次歡迎學習JavaScript" onclick="study()"/>
<script type="text/javascript">
    function study(){
        for(var i=0;i<5;i++){
            document.write("<h4>歡迎學習JavaScript</h4>");
        }
    }
</script>

study()是建立的無參函數,onclick表示按鈕的單擊事件,當單擊按鈕時調用函數study()

有參函數例

<input name="btn" type="button" value="請輸入顯示歡迎學習JavaScript的次數" onclick="study(prompt('請輸入顯示歡迎學習JavaScript的次數:',''))"/>
<script type="text/javascript">
    function study(count){
        for(var i=0;i<count;i++){
            document.write("<h4>歡迎學習JavaScript</h4>");
        }
    }
</script>

count表示傳遞的參數,不須要定義數據類型,將prompt()方法返回的值做爲參數傳遞給函數study(count)

1.5.3 變量的做用域

Java中的變量同樣,在JavaScript中,根據變量做用範圍不一樣,可分爲全局變量和局部變量。

JavaScript中的全局變量,是在全部函數以外的腳本中聲明的變量,做用範圍是該變量定義後的全部語句,包括其後定義的函數中的代碼,以及其後的<script></script>標籤中的代碼。

JavaScript中的局部變量,是在函數內聲明的變量,只有在該函數中且位於該變量以後的代碼中可使用這個變量。

1.5.4 事件

事件是使用JavaScript實現網頁特效的靈魂內容,當與瀏覽器進行交互的時候瀏覽器就會觸發各類事件,來完成網頁中的各類特效。

常見的事件

名稱

說明

onload

一個頁面或一副圖像完成加載

onclick

鼠標單擊某個對象

onmouseover

鼠標指針移到某元素上

onkeydown

某個鍵盤按鍵被按下

onchange

域的內容被改變

 

 

補充:

一、數組。默認用英文逗號分隔。

<script type="text/javascript">
    var arr = ["apple","orange","banana"];
    document.write(arr);
</script>

運行結果:

 

二、數組。不會出現數組越界,與java中集合相似。

三、document.write(「使用\」-\」從新鏈接後」);

雙引號中用雙引號須要用「\」。

相關文章
相關標籤/搜索