JavaScript課程 兩日大綱 ● JavaScript基本語法 ● JavaScript函數 ● JavaScript基於對象編程 ● JavaScript BOM對象編程 ● JavaScript DOM對象編程 ● JavaScript JSON格式簡介 *****************... ...
JavaScript課程
兩日大綱
● JavaScript基本語法
● JavaScript函數
● JavaScript基於對象編程
● JavaScript BOM對象編程
● JavaScript DOM對象編程
● JavaScript JSON格式簡介
*************************************************************************************************
1. JavaScript簡介
1.1 JavaScript是什麼
JavaScript是由Netscape公司開發並隨Navigator導航者一起發佈的、介於Java與HTML之間、基於對象事件驅動的編程語言,正日益受到全球的關註。因它的開發環境簡單,不需要Java編譯器,而是直接運行在Web瀏覽器中,而因倍受Web設計者的所愛 。
1.2 JavaScript的作用
作用:
1、對html中的標簽實現動態的控制。
2、驗證表單中的內容。
1.3 JavaScript與Java區別
JS是Netscape公司的產品,前身是LiveScript;
Java是Sun公司的產品,現在是Oracle公司的產品。
JS只需解釋就可以執行不需要編譯。 由瀏覽器去解釋。
Java需要先編譯成位元組碼文件,再執行。
JS 是弱類型。
Java 是強類型。
int a = 10;
表示a只能存儲int類型的數據。
JavaScript和java是兩種不同的語言。但是有相似的地方。比較學習。
1.4 JavaScript特點
1、腳本編寫語言(解釋型語言都叫腳本語言)
2、基於對象的語言(面向對象的概念混淆不清,類、對象、方法(函數)、屬性全部很模糊)
3、簡單性(方法的調用)
4、安全性(每種語言都會說自己很安全)
5、動態性(處處都是反射,代碼中控制代碼)
6、跨平臺性(在瀏覽器上運行)
*************************************************************************************************
2. JavaScript快速入門
2.1 編寫第一個JavaScript程式
通常在<head></head>中書寫:
<!-- 編寫第一個JavaScript程式 -->
<script type="text/javascript">
//這裡寫js代碼
alert("HelloWorld");
</script>
註意:
1、JavaScript 代碼 必需寫在 <script type="text/javascript"> </script> 標簽內部。
2、此標簽可以編寫在html頁面代碼中的任何地方。html代碼是由上至下,順序執行。
3、通常我們會將此標簽寫在<head></head>,做到html代碼和js代碼相分離。
*************************************************************************************************
2.2 外部JS文件引用編寫方式
1、新建js文件,文件的擴展名是.js
2、在js文件中編寫
//切記:直接寫js代碼,不要寫<script>標簽
alert("HelloWorld--這是外部的js文件中的js程式");
3、在html頁面上引入該文件
在<head></head>中寫入:
<!-- 引入js文件 -->
<script type="text/javascript" src="js/mao.js" ></script>
註意:
a、在html文檔中,通過script標簽的src屬性引入外部的js文件。
b、外部引入功能的<script>標簽中,不可以寫JS代碼。
c、如果要寫JS代碼,另外重新寫一對<script>標簽,然後在裡面寫。
引入JS文件和JS執行並存的代碼:
<!-- 引入js文件 -->
<script type="text/javascript" src="js/mao.js" ></script>
<script type="text/javascript">
alert("HelloWorld--可以和js文件中方法並存");
alert("haha");
</script>
*************************************************************************************************
3. JavaScript基本語法
3.1 數據類型與變數
3.1.1 回顧java的數據類型:
整數:int short long
小數:float double
字元:char
布爾:boolean
位元組:byte
字元串:String
3.1.2 JavaScript的數據類型
數值(整數和實數) 不區分整數和小數。
字元串型(用""號或''括起來的字元或數值) 包含了字元串和字元。
布爾型(使True或False表示)
空值 null 表示值為空
3.1.3 回顧java定義變數
數據類型 變數名;
數據類型 變數名 = 初始值;
3.1.4 JavaScript定義變數
var 變數名=初始值;
var 變數名;
js中定義的變數,在沒有賦值之前,這些空間中是沒有數據類型的。
一旦賦值以後,js通過值來主動幫我們判斷該變數應該是什麼類型。
通過typeof可以知道js變數的類型。
代碼:
<script type="text/javascript">
//定義變數
var a = 10;
var b = 20.5;
var c = "abc";
//判斷變數是什麼類型
alert(typeof(a));
alert(typeof(b));
alert(typeof(c));
</script>
1、建議大家一定要使用var 關鍵字去定義一個變數。
2、建議大家定義一個變數,最好就存放一種數據類型數據。
*************************************************************************************************
3.2 運算符
3.2.1 算數運算符
JavaScript中的算術運算符有單目運算符和雙目運算符。
雙目運算符:
+(加)
、-(減)、
*(乘)、
/(除)、
%(取模)
單目運算符:
++(遞加1)、--(遞減1)。
註意:
1、基本的算術運算和java一樣。
2、整數除不盡,會自動轉成小數,反正在js中都是number。
3、字元串在加上一個整數的時候會進行拼接,最終轉成一個字元串。
4、如果字元串用於其它運算(非加法)的話,返回NaN(not a number)。
代碼:
<script type="text/javascript">
//1、基本的算術運算和java一樣。
var a = 6;
var b = 20;
var c = a+b;
//alert(c);
//2、整數除不盡,會自動轉成小數,反正在js中都是number。
var d = b/a;
//alert(d);
//3、字元串在加上一個整數的時候會進行拼接,最終轉成一個字元串。
var e = "abc";
var f = e + a + b;
//alert(f);
//4、如果字元串用於其它運算(非加法)的話,返回NaN(not a number)。
var g = e - a;
alert(g);
</script>
*************************************************************************************************
3.2.2 賦值運算符
java賦值運算符號: = ,+= -= *= /= %=
js 賦值運算符:= ,+= -= *= /= %=
舉例:
a += b ; 等價於 a = a+b;
a -= b ; 等價於 a = a-b;
a *= b ; 等價於 a = a*b;
a /= b ; 等價於 a = a/b;
a %= b ; 等價於 a = a%b;
整數除不盡,會自動轉成小數,反正在js中都是number。
如果保留N位小數
語法:
變數名.toFixed(N)
代碼:
<script type="text/javascript">
//整數除不盡,會自動轉成小數,反正在js中都是number。
var a = 20;
var b = 6;
a/=b;//a = a/b;
//如果保留N位小數
a=a.toFixed(2);
alert(a);
</script>
*************************************************************************************************
3.2.3 關係運算符
比較運算符它的基本操作過程是,首先對它的操作數進行比較,然後再返回一個true或False值。
js有8個比較運算符:
<(小於)、>(大於)、<=(小於等於)、>=(大於等於)、==(等於)、!=(不等於)。
註意:
1、== 只判斷裡面的值是否相同
2、=== (表示全等:要求數值相同的同時,類型也要相同)
代碼:
<script type="text/javascript">
//1、== 只判斷裡面的值是否相同
var a = "100";
var b = 100;
//alert(a==b);
//2、=== (表示全等:要求數值相同的同時,類型也要相同)
alert(a===b);
</script>
*************************************************************************************************
3.2.4 邏輯運算符
&&(與)、 ||(或)、 !(非)
與Java一樣,會出現邏輯短路(當左邊的表達配合邏輯運算符已經能夠確定出來結果,右邊的表達式為了節省效率就不執行了)
註意:
返回結果與java(要求兩邊是邏輯值)有不同。
&& :當左邊真,返回右側表達式的值。
當左邊假,返回左側表達式的值,右側不執行 (短路)
|| :當左邊真,返回表達式左邊的值,右側不執行 (短路)
當左邊假,返回表達式右側的值。
切記:
在js中非0非空非錯就是真, 0、null、""、''、undefined NaN 都是假
所以js邏輯運算符不再返回true false這樣的布爾值,而是具體值
代碼:
<script type="text/javascript">
//&& 當左邊真,返回右側表達式的值。
//alert(true&&100);
//&&當左邊假,返回左側表達式的值,右側不執行 (短路)
//alert(false&&true);
//alert(0&&true);
var a = 10;
alert(null&&++a);//邏輯短路,前面的值能夠確定與運算的結果,右邊就不運算了
alert(a);
</script>
*************************************************************************************************
3.2.5 位運算符
JavaScript中的位運算符:
- & 與:二進位比較,兩個都是1返回1,否則是0;
- | 或:二進位比較:一個是1返回1,否則是0;
- ^ 異或:兩個都相同返回0,否則1;
- ~ 取反: 1取0,0取1;
- >> 右移:高位補符號位" 這裡右移一位表示除2
- << 左移:左移一位表示乘2,二位就表示4,就是2的n次方
- >>> 無符號右移,高位補0"; 與>>類似
註:用的不多,通常都是有java處理完然後返回給頁面
1、如下:
a=5;
b=4;
計算a | b
把a,b轉換成二進位
a 0101
b 0100
----------
0101 = 5
代碼:
<script type="text/javascript">
//計算a | b
var a = 5;
var b = 4;
//位或運算
var c = a|b;// 101
// 100
// 101
alert(c);
</script>
2、面試題:最高效率的計算 2*2*2*2
代碼:
<script type="text/javascript">
//2、面試題:最高效率的計算 2*2*2*2
alert(2<<3);
</script>
*************************************************************************************************
3.2.6 三元運算符
JavaScript中的三元運算符:表達式1 ? 表達式2 : 表達式3;