1. 程式人生 > >js語法規範

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

空型  resource 資源型

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. 兩個關鍵字breakcontinue

break:在迴圈switch裡邊有使用

       結束當前的本層迴圈,跳出switch的分支結構

continue:在迴圈裡邊使用

   跳出本次迴圈,進入下次迴圈

通過標誌位設定,可以使得breakcontinue的作用效果發生改變。

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,agecity=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]calleereturn返回值、函式呼叫)

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(引數字串)語法結構