js語法規範
二.使用語法規範
① 在html程式碼裡邊引入js語言
<script type=”text/javascript”>具體js程式碼</script>
<script type=”text/javascript” src=”js檔案”></script>
② 程式碼大小寫敏感③ 結束符號④ 註釋// 單行註釋/*多行註釋*/
⑤ 變數 氣質可以發生改變的量就是變數 變數是記憶體中最小的單位
⑥ 資料型別
php(8種):int 整型 float 浮點型 string 字串型 boolean 布林型 array 陣列型 object 物件型 null
javascript(6種): number(int/float) stringbooleannullundefinedobject
(陣列是物件的一部分)
⑦ typeof 判斷變數的資料型別 typeof判斷變數的資料型別
三. Number數值資料型別
1. 各種進位制數表示 2浮點數 3. 最大數、最小數 4無窮大的數
四. 運算子
1. 算術運算子
+ - * / %取餘數(模) ++ --
i++ : 先賦值、再++計算
++i : 先++計算,再賦值 i++和++i在沒有賦值情況下的執行結果都一致
i++和++i在賦值情況下有區別
2.比較運算子
> < >= <= != ==
===全等於 !==不全等於
全等於===:比較值的型別和資料大小
等於==: 比較值的資料大小
console.log(10==’10’); //true
console.log(10===’10’); //false
console.log(10===10); //true
比較運算子的返回資訊是boolean結果資訊
3. 邏輯運算子
3.1 && 邏輯與
兩邊結果都為真,結果為真
3.2 || 邏輯或
兩邊結果只要有一個為真,結果為真
3.3 !邏輯取非
真即假,假即真
注意點:1)邏輯運算子最終結果
在php裡邊,最終結果是“布林”結果
在javascript裡邊,
&& 和 || 是其中一個運算元(是最終影響結果的那個運算元)
!是布林結果
2)短路運算
4. +加號運算子
兩個意思:
① 算術+加法運算子(兩邊運算元都需要為是Number數值型別)
② 字串連線運算子(只要有一個運算元為字串就做連線運算)
只要有一個運算元為字串就做連線運算
(php裡邊+加號只有加法運算使用.點進行字串連線運算)
console.log(15+23); //38
console.log('32'+56); //3256
console.log('hello'+'beijing'); //hellobeijing
三.流程控制
順序結構 分支選擇結構if else if else switch 迴圈結構:while(){} for()
1.條件表示式switch用法
switch(變數){
case 常量:
分支;break;
case 常量:
分支;break;
case 常量:
分支;break;
default:
分支;break;
}
if(score >=90 && score<100)
score = 95;
switch(){
case 條件判斷表示式:
分支;break;
case 條件判斷表示式:
分支;break;
case 條件判斷表示式:
分支;break;
default:
分支;break;
}
2. 兩個關鍵字break和continue
break:在迴圈、switch裡邊有使用
結束當前的本層迴圈,跳出switch的分支結構
continue:在迴圈裡邊使用
跳出本次迴圈,進入下次迴圈
通過標誌位設定,可以使得break和continue的作用效果發生改變。
for1
flag:
for2
cat:
for3
for4
break flag/cat; //把flag/cat標誌的迴圈給結束
continue flag/cat; //結束flag/cat標誌的當前迴圈,進入下次迴圈
break設定標誌位使用案例:???
五. 函式function
2.1 傳統方式
function 函式名(){}
該方式的函式有“預載入”過程,允許我們先呼叫函式、再宣告函式
預載入:先把函式的宣告放入記憶體。程式碼看起來是先呼叫、後宣告,本質是先宣告、後呼叫的。
預載入:先把函式的宣告放入記憶體。程式碼看起來是先呼叫後宣告,本質是先宣告,後呼叫的
函式名();
function 函式名(){}
函式先呼叫、後宣告的條件是:全部程式碼在同一個”<script>”標記裡邊。
2.2 變數賦值方式宣告函式(匿名函式使用)
var 函式名 = function(){}
在javascript裡邊,函式就是一個變數,資料型別是物件。
該方式沒有“預載入”,必須“先宣告、後呼叫”。
總結:
1. 資料型別:number string boolean null undefined object
2. number數值型別:各種進位制數的使用
各個位數的數字 * 進位制數的(位數-1)次方 的算術和
浮點數
最大數、最小數
無窮大的數
3. 運算子(算術、比較、邏輯、+號)
4. 流程控制(switch break/continue)
5. 函式:兩種宣告
3. 函式的引數
function 函式名(name,age,city=’beijing’){}
函式名(‘tom’,23,’guangzhou’);//傳遞實參資訊
3.1 實參和形參的對應關係
引數沒有預設值情況下:
在php裡邊:實參的個數小於形參,系統要報錯
在javascript裡邊:實參與形參個數沒有嚴格的對應要求
3.2 關鍵字arguments
arguments
function 函式名(){} //函式宣告沒有形參
函式名(實參,實參); //呼叫的時候有傳遞實參
利用arguments可以在函式裡邊接收實參資訊。
過載:同一個物件呼叫多次同一個方法,由於引數個數不同,呼叫得到的效果也不同
利用arguments實現方法過載效果
Arguments.length可以獲得呼叫函式傳遞過來的實參個數,arguments[0]實參的資訊
可以通過arguments[n]訪問陣列元素的樣子,獲得各個實參資訊
4. callee關鍵字
callee關鍵字:
意思:在函式內部使用,代表當前函式的引用(名字)。
作用:降低程式碼的耦合度。
耦合度:一處程式碼的修改會導致其他程式碼也要發生改變(耦合度高)
在專案裡邊要開發低耦合度的程式碼(一處程式碼修改儘量少地引起其他程式碼的變化)。
function f1(){
arguments.callee(); //呼叫本函式(或者f1())
}
f1();
5. 函式返回值return
function 函式名稱(){
函式執行體程式碼...
return 資訊;
xxxxxx
}
console.log(函式名稱()); //可以輸出函式的return資訊
var rst = 函式名稱(); //可以使得return資訊對變數進行賦值
一個函式執行完畢可以通過return關鍵字返回一定的資訊,該資訊可以直接輸出、也可以進行變數賦值。return本身還有結束函式的執行效果。
在一定意義上看,全部的資料型別(數值、字串、布林、物件、null)資訊都可以返回(undefined型別無需返回,本身無意義)
在javascript裡邊函式return除了可以返回基本型別的資訊,其還可以返回function函式。
在javascript裡邊,一切都是物件
在一個函式內部,可以宣告數值、字串、布林、物件等區域性變數資訊,言外之意就還可以宣告函式(函式內部還要巢狀函式)變數資訊,因為函式是物件,並且函式可以被return給返回出來。
什麼是值傳遞:
什麼是值傳遞:
函式內部可以巢狀函式,並且巢狀的函式可以return返回:
6. 函式呼叫
6.1 傳統方式函式呼叫
函式名();
6.2 匿名函式自呼叫
(function(){})();
特點:程式程式碼沒有停頓,立即發生執行
好處:可以避免變數汙染
7. 全域性/區域性變數
7.1 全域性變數
php裡邊:① 函式外部宣告的變數。
② 在函式內部也可以宣告全域性變數(函式呼叫之後起作用)
javascript裡邊:① 在函式外部宣告的變數
② 函式內部不使用“var”宣告的變數( 函式呼叫之後起作用)
php允許在函式內部宣告全域性變數:
在javascript裡邊宣告全域性變數:
7.2 區域性變數
在函式內部宣告的變數
php裡邊:在函式內部宣告的變數
javascript裡邊:在函式內部宣告的變數,變數前邊有”var”關鍵字。
六.陣列
2. 陣列宣告
Php中定義陣列和給陣列賦值:
$arr = array(); $arr[0]=”cjy”;
或者直接$arr[]= 22;
或者$http=array("www","helpphp","cn");
三種方式:
① var arr = [元素,元素,元素。。。];
② var arr = new Array(元素,元素,元素。。。);
③ var arr = new Array();
arr[0] = 元素;
arr[1] = 元素;
注意:
A. javascript陣列的下標都是數字的
B. ①和②兩種方式宣告的陣列,各個元素不能顯示設定下標
C. ③方式給陣列逐一豐富的每個元素必須要設定下標,數字、字串型別下標都可以
數字下標就是陣列部分
字串下標就是物件的成員屬性
D. javascript中的陣列本身是一個物件,內部有陣列元素部分也有物件成員部分。
三種方式宣告陣列:
3.獲取陣列長度
陣列.length; //獲得陣列元素個數和
length屬性在數組裡邊是獲得陣列元素“最大數字下標”加1的資訊。
4.陣列遍歷
沿著一定的順序對陣列內部的元素做一次且僅做一次訪問,稱作遍歷。
① for迴圈 遍歷 //適合遍歷下標是0/1/2/3..等規則、連續的陣列
② for-in遍歷 //陣列、物件都可以遍歷,並且陣列的下標沒有具體要求
兩種方式遍歷陣列:
5. 陣列常用方法
七. 字串
定義:通過(單/雙)引號把鍵盤上用於顯示的一些資訊給括起來,就是一個字串
var name = ‘tom’;
var addr = “beiji9828392^$^%$^%ng”;
思考:在javascript裡邊,字串為什麼可以呼叫一些方法
(傳統思維是隻有物件可以呼叫方法)
字串呼叫成員的原理:
八.神奇的eval
eval(引數字串)
該eval可以把內部引數字串當成表示式,在上下文環境中執行。
該eval()經常用於把其他使用者傳遞過來的字串資訊轉變為javascript的實體(物件、陣列等)資訊。
eval(引數字串):引數要求必須符合js語法規則。
總結:
1. 函式使用(引數、arguments[.length]、callee、return返回值、函式呼叫)
2. 陣列使用
a) 宣告
var arr = [元素,元素。。。]
var arr = new Array(元素,元素。。。);
var arr = new Array()
arr[下標] = 值;
b) 長度length
c) 遍歷
for迴圈
for-in
d) 常用方法
push() pop() indexOf() lastIndexOf()
3. 字串使用
eval(引數字串)語法結構