javascript
簡介javascript
俗稱js
,js
的正式名稱是ECMAScript
,是網景公司Netscape
公司開發的一種基於客戶端瀏覽器、基於面向對象、事件驅動式的網頁腳本語言。主要用於:交互式操做,表單驗證,網頁特效,web
遊戲,服務器腳本開發等;javascript
特色html
js
是一種解釋性腳本編程語言js
是基於對象的腳本編程語言三種使用方法 java
(1)使用onclick
:屬性構建執行js
代碼web
<a href="#" onclick="alert(1)">點擊</a>
(2)使用<script../>
標籤來包含js
代碼編程
<script type="text/javascript"> alert('Hello, world'); </script>
(3)導入外部的javascript
文件,讓html
頁面和js
腳本分離數組
<script src="outer.js" type="text/javascript"></script>
javascript
變量和數據類型js
是弱類型腳本語言,使用變量以前,能夠無需定義,當使用某個變量的時候直接使用便可。主要分爲如下兩種定義方式:
(1)隱式定義:直接給變量賦值(隱式變量聲明的時候必須賦初值) a = 10;
(2)顯示定義:使用var
關鍵字定義變量(使用以前必須賦初值,否則會報undefined
錯誤) var a = 10;
瀏覽器
變量命名規則: 安全
$
符號。$
、任意字母或數字。js
是弱類型腳本語言,聲明變量時無需指明變量的數據類型,js
是解釋時動態決定的,數據保存在內存中時也是有數據類型的,經常使用數據類型以下:服務器
number
):包含整數和浮點數boolean
):只有true
或false
兩個值string
):字符串必須用單引號或雙引號括起來object
)array
)undefined
):專門用來肯定一個已經建立可是沒有初值的變量null
):用來代表某個變量的值爲空NaN
:非數值型注:undefined
和null
的值相等,類型不一樣。 兩個字符串是否相等,可用==
來判斷。編程語言
數據類型轉換:
+
號或者toString()
:數值number
類型轉換成字符串 parseInt()
:將字符串轉爲整型 parseFloat()
:將字符串轉換爲浮點型
注意:
parseInt('67red') -> 67
(字符串轉爲整型的時候會自動截取前面的數字,後面的忽略)parseInt('red67') -> NaN
(字符串前面沒有數字,會報not a number
錯誤)
stringObject.charAt(index):獲取字符串特定索引處的字符 index:下標(若是不在0~stringObject.length-1的範圍內,返回'') 返回值:string stringObject.toUpperCase():將字符串的全部字符轉換成大寫字母 返回值:string stringObject.toLowerCase():將字符串的全部字符轉換成小寫字母 返回值:string stringObject.substring(start, end):提取字符串中介於兩個指定下標之間的字符 start:必須,字符串中開始位置 end:非必需,字符串中結束位置,若是不指定,會一直到字符串的結尾 返回值:string arrayObject.slice(start, end):提取字符串中介於兩個指定下標之間的字符,可指定負數 start:必須,字符串中開始位置 end:非必需,字符串中結束位置,若是不指定,會一直到字符串的結尾 返回值:string stringObject.indexOf(searchvalue,fromindex):返回某個指定的字符串值在字符串中首次出現的位置 searchvalue:必須,須要查找的字符串 fromindex:非必須,字符串的指定位置,若是不指定,會從字符串的開始位置開始查找 返回值:number stringObject.replace(regexp/substr,replacement):將字符串中的某個子串以特定的字符串替換 regexp/substr:須要替換的字符串 replacement:替換字符串的值 返回值:string stringObject.split(separator,limit): separator 必需,分隔符 limit 可選。該參數可指定返回的數組的最大長度,若是不指定,整個字符串都會被分割 返回值:string數組 stringObject.concat(str1, str2...):用於將多個字符串拼加成一個字符串 str1:字符串 返回值:string
注意:
js
數組三種定義數組的方法:
(1)定義時直接給數組變量賦值 var arr = [1, 2, 3];
(2)定義一個空數組 var arr = [];
(3)用new
方法定義數組 var arr = new Array();
特色:
undefined
,不會數組越界js
裏面沒有數組越界的概念,會顯示undefined
js
運算符算術運算符:+ - * / % ++ --
賦值運算符:=
比較運算符:> < >= <= == != === !==
邏輯運算符:&& || !
位運算符:& | ~ ^ << >>
其餘運算符:三目運算符(?:
) void
運算符:強行指定某個表達式的不會返回值
`typeof` 運算符:獲取某個變量的數據類型 `instanceof`運算符:判斷某個變量的數據類型是否爲指定的數據類型 `var a = void 3; //輸出爲undefined` `document.write(typeof(str)); //輸出爲string` ` alert(arr instanceof Array); //輸出爲true`
注意:js
中沒有繼承的概念,全部的對象的父類都是object
js
流程控制js
支持的分支語句主要有if
和switch
語句。
if(條件){ //表達式 }else{ //表達式 } //注意:switch中表達式的值能夠是number類型,也能夠是string類型 switch(表達式){ case 值1: //表達式 break; case 值1: //表達式 break; ... default://表達式; }
js
支持的循環語句主要有while
循環,do-while
循環,for
循環,for-in
循環
//先判斷,後執行 while(循環條件){ //表達式 } //先執行,後判斷,至少執行一次 do{ //表達式 }while(循環條件) //當循環次數肯定的狀況下,通常用for循環,更簡潔 for(表達式1; 表達式2; 表達式3){ //表達式 } //可用於遍歷對象,好比數組(數組遍歷的是下標,對象遍歷的是屬性,注意:都不是具體的值) for(變量 in 對象){ //表達式 } //遍歷的是下標 var arr = [1, 2, 3, 4, 5]; arr[5] = 10; arr[10] = 11; for(var a in arr){ document.write(arr[a]+' '); }
js
提供了break
和continue
來改變循環的控制流
break
:跳出該層循環continue
:結束該層循環的本次循環經常使用的特殊語句
語句是js
的基本執行單元,每條語句都是以分號結束,語句了前面的賦值語句、算術運算等語句以外,還有一些特殊語句。
throw new Error('異常拋出');
異常捕捉語句
try{ var age = 5; if(age == 5){ throw new Error('異常拋出'); } }catch(e){ document.write('出錯:'+e.message); }finally{ document.write('總會執行的finally塊'); }