1、JavaScript簡介
1.1、發(fā)展歷程
??? 》 1992年:Nombas公司開發(fā)C-minus-minus(簡稱CMM)的嵌入腳本,后改名為ScriptEase
??? 》 1995年:Netscape開發(fā)LiveScript 的腳本語言,發(fā)布前,Netscape 將其更名為 JavaScript
??? 》 微軟決定進軍瀏覽器,發(fā)布了 一個 JavaScript 的克隆版,叫做 JScript
??? 》 1997 年,歐洲計算機制造商協(xié)會(ECMA)指定JS標(biāo)準(zhǔn),命名為 ECMAScript 。從此,ECMAScript 作為
??????? JavaScript 實現(xiàn)的基礎(chǔ)
1.2、JavaScript的作用
??? 》 Html和css的網(wǎng)頁只是”靜態(tài)”的
??? 》 使用JavaScript,網(wǎng)頁才能動起來(讓網(wǎng)頁具有動畫效果)
1.3、使用的環(huán)境
??? 》 網(wǎng)頁特效,如:抽象、圖片輪播、倒計時等
??? 》 表單輸入驗證
??? 》 網(wǎng)頁游戲
1.4、第一個Html示例
??? 》 Html頁面中輸出《憫農(nóng)》
??? 》 注釋(單行注釋與多行注釋)
1.5、Js的兩種使用方式
??? 》 直接嵌入
??? 》 外部引入
1.6、什么是JavaScript
1.6.1、概述
??? JavaScript是由網(wǎng)景公司推出,主要運行在瀏覽器客戶端,實現(xiàn)頁面交互的腳本語言
1.6.2、特點
??? 》 解釋型腳本語言
??? 》 不需要服務(wù)器支持
??? 》 直接嵌入頁面使用
??? 》 跨平臺,易上手
??? 》 基于對象,事件驅(qū)動
1.6.3、JavaScript的組成
??? 》 ECMAScript:JavaScript腳本的核心,定義了數(shù)據(jù)類型、基本語法級分支語句等
??? 》 BOM:瀏覽器對象模型,提供了操作瀏覽器對象的相關(guān)方法
??? 》 DOM:文檔對象模型,提供了文檔操作的相關(guān)方法
2、變量與數(shù)據(jù)類型
2.1、變量
?? 1)定義語法
??????? [var] 變量名 = 值;
??? 2)、說明
??????? 》 JavaScript采用弱類型。即變量在使用前不需作聲明,而是解釋器在運行時再檢查其數(shù)據(jù)類型。
??????? 》 JavaScript變量是弱類型的,聲明統(tǒng)一用 var,這一點與強類型的java語言不同
??????? 》 JavaScript變量的類型可以變化,?? 取決于后面所賦的值
??? 3)、變量命名規(guī)則
??????? 》 變量名區(qū)分大小寫
??????? 》 只能含有字母 、數(shù)字 、下劃線_ 、美元符號$
??????? 》 不能以數(shù)字開頭
??????? 》 不能使用關(guān)鍵字和保留字
??? 4)、變量命名建議
??????? 》 變量名盡可能的短,抓住要點
??????? 》 使用有意義的短語命名
??????? 》 推薦常用的駝峰命名法
2.2、局部變量和全局變量
??? 1)、全局變量
??????? 在 JavaScript 函數(shù)內(nèi)部聲明的變量(使用 var)是局部變量,所以只能在函數(shù)內(nèi)部訪問它。函數(shù)運行完畢,本地變
??????? 量就會被刪除
??? 2)、局部變量
???????? 在函數(shù)外聲明的變量是全局變量,網(wǎng)頁上的所有腳本和函數(shù)都能訪問它。
??? 3)、對比
??????? 》 局部變量會在函數(shù)運行以后被刪除
??????? 》 全局變量會在頁面關(guān)閉后被刪除
2.3、typeof操作符(類型檢測)
??? 1)、語法
??????? typeof 字面量/變量
??? 2)、作用
??????? 返回變量/字面量的值
2.4、數(shù)據(jù)類型
??? 1)、number(數(shù)字)
??????? 》 概述
??????????? JavaScript 只有一種數(shù)字類型。
??????? 》 說明
??????????? # 數(shù)字可以帶小數(shù)點,也可以不帶
??????????? # 極大或極小的數(shù)字可以通過科學(xué)(指數(shù))計數(shù)法來書寫
??? 2)、string(字符串)
??????? 》 概述
??????????? 字符串是存儲字符的類型。
??????? 》 說明
??????????? # 字符串是由雙引號(”)或單引號(’)括起來的字符序列
??????????? # 可以在字符串中使用引號,只要不匹配包圍字符串的引號即可
??? 3)、boolean(布爾)
??????? 》 概述
??????????? 布爾值指代真或假、開或關(guān)、是或否。
??????? 》 說明
??????????? # Boolean類型只有兩個值,保留字true和false
??? 4)、null(空)
??????? 》 概述
??????????? 可以通過將變量的值設(shè)置為 null 來清空變量。
??????? 》 說明
??????????? # null值表示一個空對象,所以使用 typeof 操作符檢測 null 值時會返回"object"
??????????? # undefined 表示變量未初始化,null表示變量值為空值
??? 5)、undefined(未定義)
??????? 》 概述
??????????? undefined表示變量沒有值。
??????? 》 說明
??????????? # 使用var聲明變量但未對其初始化時,這個變量的值就是undefined
??????????? # 已聲明但未初始化的變量是undefined類型,它與未聲明的變量是不同的
??????????? # 值 undefined 實際上是從值 null 派生來的,所以比較時他們的值是相等的
??? 6)、object(對象)
??????? 》 概述
??????????? JavaScript中的對象。
2.5、類型轉(zhuǎn)換
??? 1)、Java類型轉(zhuǎn)換的特點
??????? 》 轉(zhuǎn)換前后的數(shù)據(jù)類型兼容
??????? 》 根據(jù)轉(zhuǎn)換前后數(shù)據(jù)類型的范圍來區(qū)分是自動轉(zhuǎn)換還是強制轉(zhuǎn)換
??? 2)、隱式類型轉(zhuǎn)換
??????? 隱式轉(zhuǎn)換又叫自動類型轉(zhuǎn)換,不需要用戶干預(yù),自動進行類型轉(zhuǎn)換。
??? 3)、顯式類型轉(zhuǎn)換
??????? 顯式轉(zhuǎn)換又叫強制轉(zhuǎn)換,是指將一個變量或表達式強制轉(zhuǎn)換成特定的數(shù)據(jù)類型。如:String(123);
2.6、類型轉(zhuǎn)換方法
??? 1)類型()
??????? 將數(shù)據(jù)轉(zhuǎn)為目標(biāo)類型
??? 2)parseXxxx()
??????? 將數(shù)據(jù)轉(zhuǎn)為目標(biāo)類型。
2.7、NaN(特殊值:Not a Number)
??? 表示當(dāng)前數(shù)據(jù)不是一個數(shù)字。
2.8、isNaN()
??? 該函數(shù)用于檢查一個變量是否為數(shù)值,如果是,則返回false,如果不是,則返回true
3、運算符和選擇結(jié)構(gòu)
3.1、概述
??? 運算符是執(zhí)行變量或值之間運算的符號
3.2、運算符
3.2.1、算數(shù)運算符
??? +、-、*、/、%、++、--
3.2.2、賦值運算符
??? 1)、最常用的賦值運算符是:=
??? 2)、復(fù)合賦值運算符有:+=、-=、*=、/=、%=
3.2.3、比較運算符
??? 1)、運算符
??????? >、>=、<、<=、==、!=、===、!===
??? 2)、==和===
????? ==比較值是否相等;===比較值的同時還比較類型
3.2.4、邏輯運算符
??? &&、||、!
3.2.5、三元運算符
??? ?:
3.3、選擇結(jié)構(gòu)
3.3.1、概述
??? 選擇結(jié)構(gòu)是根據(jù)條件判斷結(jié)果來決定程序執(zhí)行流程的程序控制結(jié)構(gòu)
3.3.2、分類
??? 1)、實現(xiàn)方式
??????? if分支結(jié)構(gòu)、switch分支結(jié)構(gòu)
??? 2)、分支數(shù)量
??????? 單分支、雙分支、多分支
??? 3)、if分支語句
??? 4)、switch分支語句
??? 5)、對比
??????? 》 if語句可以用于選擇結(jié)構(gòu)中的任何情況
??????? 》 switch語句只能用于選擇結(jié)構(gòu)中的等值判斷,可讀性好一些
4、循環(huán)語句
4.1、概述
??? 循環(huán)結(jié)構(gòu)是反復(fù)執(zhí)行一系列指令直到某些特定條件滿足的程序控制結(jié)構(gòu)
4.2、循環(huán)語句
??? 1)、for
??? 2)、while
??? 3)、do...while
??? 4)、while...in