1 什么是JavaScript?
是一種嵌入在網頁中的程序段。
是一種解釋型語言,被瀏覽器解釋執行。
由Netscape發明,ECMA(歐洲計算機制造商協會)將其標准化。
JavaScript借用了Java的名字,但它和java沒有關系。
出於安全性考慮,增加了JavaScript的限制
增強客戶端的交互功能。
JavaScript與java的區別:
JS只在瀏覽器中執行,java可在各種平台上執行。
JS也有變量,常量,運算符,關鍵字,數據類型,語句等。
JS借用了Java的語法,其運算符和表達式與Java非常相似。
2 JavaScript能做什么?
可以使用JS添加、刪除、修改網頁上的所有元素及屬性。
在HTML網頁中動態寫入文本。
響應網頁中的事件,並做出相應處理。
可用於較驗客戶端提交的數據。
檢測瀏覽器類型及版本。
(判斷瀏覽器類型:)

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>跨瀏覽器編程</title> <script type="text/javascript"> function browserType(even){ if(window.event){//判斷是不是IE瀏覽器 document.getElementById('p1').innerHTML='IE'; } else if(even){//判斷是不是DOM兼容瀏覽器 document.getElementById('p1').innerHTML='DOM' ; } } </script> </head> <body> <button onclick="browserType(event);"> Hello JavaScript Event Object</button> <p id="p1">到底是什么瀏覽器呢</p> </body> </html>
處理Cookie.
3 JavaScript的技術體系
核心語言定義
原生對象和內置對象
BOM(瀏覽器對象模式)
DOM (文檔對象模式)
事件處理模型
4 將JavaScript添加到XHTML文檔中
使用script元素在XHTML文檔中直接嵌入JavaScript語句---方便

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <script type="text/javascript"> 9 alert("使用script元素在XHTML文檔中直接嵌入JavaScript語句"); 10 </script> 11 12 </body> 13 </html>
將JavaScript源文件通過<script>元素的src屬性鏈接到XHTML文檔---結構、表現、行為分離

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="../js/two.js"></script> </head> <body> <form action="#" method="get"> <input type="button" value="點擊" onclick="alertTest();"> </form> </body> </html>
在two.js里包含的腳本
function alertTest(){
alert("鏈接外部腳本");
}
腳本包含在XHTML事件處理程序性中,eg:onclick ondblclick onkeydown ...

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <!--<script type="text/javascript" src="../js/two.js"></script>--> </head> <body> <form action="#" method="get"> <input type="button" value="點擊" onclick="alert('腳本包含在XHTML中');"> </form> </body> </html>
5 JavaScript變量
JS中聲明變量都用關鍵字var,並且JS區分大小寫
弱類型,不一定要初始化
在聲明變量時注意的一些小細節:
聲明變量后 第一次給變量賦什么樣類型的值,以后必須使用相同的類型
當我們沒有使用var 定義變量的時候 如果沒有給變量賦值 就會報錯 如果給它賦值了。 宿主環境 (瀏覽器)就把 認為一個 全局變量
var num; 當聲明的變量未初始化時,值為undefined。
6 JavaScript數據類型
6.1 原始數據類型
typeof運算符
typeof運算符有一個參數,即要檢查的變量或值;
在使用typeof運算符時采用引用類型存儲值會出現一個問題,無論引用的是什么類型的對象,他都返回"Object";
用另一個運算符instanceof來解決這個問題;
eg
var s=new String('hello js');
alert(s instanceof String);// 輸出"true"
這個需要開發者明確的指出對象為某特定的類型
–Undefined:
•當聲明的變量未初始化時,值為undefined。
•當函數無明確返回值時,其調用結果也是undefined。

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script> function test(){ alert("1111"); return 1; } // var i = test(); //當函數無明確返回值時,其調用結果也是undefined。 // var i = test() ;// 先調用函數test 任何把返回值賦值為i undefined var i = test ; //是把函數test的地址賦值給了i; alert(i); alert(typeof (i)); </script> </head> <body> </body> </html>
–Null
•值為null,null是從Undefined派生來的。因此null==undefined
•null表示不存在的對象。
var i = null;
alert(i);//null
alert(typeof (i));//object
–Boolean
•true或false
–Number
•即可表示32位整數,也可表示64位浮點數。
•Number.MAX_VALUE和Number.MIN_VALUE定義了上下限。
•Number.POSITIVE_INFINITY和Number.NEGATIVE_INFINITY Infinity表示無窮大。isFinite()較驗是否無窮大。無窮大返回false
•NaN表示非數字,它與自身不相等。一般發生在類型轉換失敗時,isNaN()較驗是否為數字。
–String
•可用單引號或雙引號聲明。
數據類型轉換
parseInt()
從左到右依次解析 直到遇見解析的那個字符不是是數字, 則結束
parseFloat
從左到右依次解析 直到遇見解析的那個字符不是是數字,則結束, 從有效數字開始,只會出現一個小數點。
var a = parseInt("1234"); //返回1234
var b = parseInt("abc"); //返回NaN
var b = parseFloat("012.23.45"); //返回12.23
強制類型轉換有三種:Boolean(value) Number(value) String(value)
當要轉換的值是至少有一個字符的字符串,非0數字或對象時,Boolean()函數返回true,如果該值是空字符串,數字0,undefined或null,將返回false;
Number 轉換的時候 是把 字符串當一個整體來轉換;
String 轉換的時候 只需要調用作為參數傳遞進來的值的toString()方法;
6.2 引用數據類型
原生對象
–由JavaScript提供,獨立於瀏覽器的對象。
–Object,Array,String,Boolean,Number,Date,RegExp...
內置對象
–也是一種原生對象,只是在使用時不需要初始化。
–Global,Math
宿主對象
–與瀏覽器有關的對象。
–BOM,DOM
自定義對象
數組對象:
Array | 對數組的內部支持 |
Array.concat( ) | 連接數組 |
Array.join( ) | 將數組元素連接起來以構建一個字符串 |
Array.length | 數組的大小 |
Array.pop( ) | 刪除並返回數組的最后一個元素 |
Array.push( ) | 給數組添加元素 |
Array.reverse( ) | 顛倒數組中元素的順序 |
Array.shift( ) | 將元素移出數組 |
Array.slice( ) | 返回數組的一部分 |
Array.sort( ) | 對數組元素進行排序 |
Array.splice( ) | 插入、刪除或替換數組的元素 |
Array.toLocaleString( ) | 把數組轉換成局部字符串 |
Array.toString( ) | 將數組轉換成一個字符串 |
Array.unshift( ) | 在數組頭部插入一個元素 |