JavaScript
1 概念:一門客戶端腳本語言
- 運行在客戶端瀏覽器中的。每一個瀏覽器都有JavaScript的解析引擎
- 腳本語言:不需要編譯,直接就可以被瀏覽器解析執行了
2 功能:
- 可以來增強用戶和html頁面的交互過程,可以來控制html元素(對html元素的屬性和內容進行修改),讓頁面有一些動態的效果,增強用戶的體驗。
3 JavaScript發展史
- 1992年,Nombase公司,開發出第一門客戶端腳本語言,專門用於表單的校驗。命名爲:C–,後來更名爲:ScriptEase
- 1995年,Netscape(網景)公司,開發了一門客戶端腳本語言:LiveScript。後來,請來SUN公司的專家,修改LiveScript,命名爲JavaScript
- 1996年,微軟抄襲JavaScript開發出JScript語言
- 1997年,ECMA(歐洲計算機制造協會),制定出客戶端腳本語言的標準:ECMAScript,就是統一了所有客戶端腳本語言的編碼方式。
- JavaScript = ECMAScript + JavaScript自己特有的(BOM+DOM)
4 ECMAScript:客戶端腳本語言的標準
- 基本語法:
- 與html結合方式
- 內部JS:
定義<script>,標籤體內容就是js代碼
- 外部JS:
定義<script>,通過src屬性引入外部的js文件
- 注意:
<script>可以定義在html頁面的任何地方。但是定義的位置會影響執行順序。
<script>可以定義多個
- 內部JS:
- 數據類型
- 原始數據類型(基本數據類型):
*number:數字。整數、小數、NaN(not a number)
*string:字符串 “a” ‘abc’
*boolean:true和false
*null:一個對象爲空的佔位符
*undefined:未定義。如果一個變量沒有給初始化值,則會被默認賦值爲underfined - 引用數據類型:對象
- 原始數據類型(基本數據類型):
- 變量:一小塊存儲數據的內存空間
- JavaScript是弱類型語言,在開闢變量空間時,不定義空間將來的存儲數據類型,可以存放任意類型的數據。
- var 變量名 = 初始化值;
- typeof運算符:獲取變量的類型
null運算後得到的是object
- 運算符
- 一元運算符:只有一個運算數的運算符++、–、+(-)
在JS中,如果運算數不是運算符所要求的類型,那麼Js引擎會自動類型轉換- 其他類型轉number:
- String轉number:按照字面值轉換,如果字面值不是數字,則轉換爲NaN
- boolean轉number:true爲1,false爲0。
- 其他類型轉number:
- 算術運算符
+、-、*、/、%… - 賦值運算符
=、+=、-=… - 比較運算符
>、<、>=、<=、===(全等於) 、==
- 類型相同:直接比較
字符串:按照字典順序比較,按位逐一比較,直到得出大小爲止 - 類型不同:先進性類型轉換,在比較
===:全等於,在比較之前,先判斷類型,如果類型不一樣,則直接返回false
- 類型相同:直接比較
- 邏輯運算符
其他類型轉boolean:- number:0或NaN爲假,其他爲真
- string:除了空字符串(""),其他都是真
- null&undefined:都是false
- 對象:都是true
- 三元運算符
var c = a>b ? 1:0;
- 一元運算符:只有一個運算數的運算符++、–、+(-)
- 流程控制語句
在JS中,switch語句可以接受任意的原始數據類型 - JS特殊語法:
- 語句以;結尾,如果一行只有一條語句,;可省略
- 變量的定義使用var關鍵字,也可以不用
用:定義的變量是局部變量
不用:定義的變量是全局變量(不建議)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>99乘法表</title> <style> td{ border: 1px solid; } </style> <script> document.write("<table align='center'>"); //1.完成基本的for循環嵌套,展示乘法表 for (var i = 1; i <= 9 ; i++) { document.write("<tr>"); for (var j = 1; j <=i ; j++) { document.write("<td>"); //輸出 1 * 1 = 1 document.write(i + " * " + j + " = " + ( i*j) +" "); document.write("</td>"); } /*//輸出換行 document.write("<br>");*/ document.write("</tr>"); } //2.完成表格嵌套 document.write("</table>"); </script> </head> <body> </body> </html>
- 與html結合方式
- 基本對象:
- Function:函數(方法)對象
- 創建:
*var fun = new Function(形式參數列表,方法體)//不常用
*function 方法名稱(形式參數列表) {方法體}
*var 方法名 = function(形式參數列表) {方法體} - 方法:
- 屬性:length:代表形參的個數
- 特點:
- 方法定義是,形參的類型不用寫,返回值類型也不寫
- 方法是一個對象,如果名稱相同,會覆蓋
- 在JS中,方法的調用只與方法的名稱有關,和參數列表無關
- 在方法聲明中有一個隱藏的內置對象(數組),arguments,封裝所有的實參
- 調用:
方法名(實際參數列表);
- 創建:
- Array:數組對象
- 創建
*var arr = new Array(元素列表);
*var arr = new Array(默認長度);
*var arr = [元素列表]; - 方法:
join(參數):將數組中的元素按照指定的分隔符拼接爲字符串
push():向數組的末尾添加一個或更多元素,並返回新的長度。 - 屬性:length:數組的長度
- 特點:數組元素的類型可變、數組長度可變
- 創建
- Boolean
- Date:日期對象
- Function:函數(方法)對象