Javascript開發技巧(JS中的變量、運算符、分支結構、循環結構)


一、Js簡介和入門

 繼續跟進JS開發的相關教程。

 

 

<!-- [使用JS的三種方式]

1、HTML標簽中內嵌JS(不提倡使用):

示例:<button onclick="javascript:alert('你真點啊!')">有本事點我呀!!!</button>

 

2、HTML頁面中直接使用JS:

<script type="text/javascript">

//JS代碼

</script>

 

3、引用外部JS文件:

<script language="JavaScript" src="JS文件路徑"></script>

 

[注意事項]

① 頁面中JS代碼與引用JS代碼,可以嵌入到HTML頁面的任何位置。但是,位置不同會影響到JS代碼的執行順序;

 例如:<script>在body前面,會在頁面加載之前執行JS代碼;

 

② 頁面中JS代碼,使用type="text/javascript"

   引用外部的JS文件,使用language="JavaScript"

   

③ 引用外部JS文件的<script></script>標簽,必須成對出現,且標簽內部不能有任何代碼!

 

-->

 

<script type="text/javascript">

//JS中的注釋

// 單行注釋。 Ctrl+/

/*

     段落注釋。  Ctrl+Shift+/

*/

//document.write("<h1>姜浩真帥!</h1>");

 

 

/* 【JS中的變量】

* 1、JS中變量聲明的寫法:

*  var width = 10; //使用var聲明的變量,只在當前函數作用域有效

 width1 = 11; //不使用var,直接賦值生成的變量,默認為全局變量,整個JS文件有效

 var a,b,c=1; //同一聲明語句同時聲明多個變量,變量之間用英文逗號分隔。但,賦值需要單獨賦,例如上式中,只有c賦為1,a/b為undefined(未定義)

 

 [聲明變量注意事項]

① JS中所有變量類型聲明,均使用var關鍵字。變量的具體數據類型,取決於給變量賦值的類型

 

② 同一變量,可以在多次不同賦值時,修改變量的數據類型:

 var width = 10;//width 為整形變量

 width="哈哈";//width 被改為字符串類型

 

③ 變量可以使用var聲明,也可以省略var。[區別]不使用var,默認為全局變量

 

④ 同一變量名,可以多次用var聲明。但是並沒有任何含義,也不會報錯。第二次之后的聲明,只會被理解為賦值;

 

2、變量的命名規范:

  ① 變量名,只能有字母、數字、下划線、$ 組成

  ② 開頭不能是數字

  ③ 變量區分大小寫,大寫字母與小寫字母為不同變量

 

3、變量名命名要符合駝峰法則:

      變量開頭為小寫,之后每個單詞首字母大寫(或單詞之間用下划線分隔);

  jiangHaoIsShuaiGe √

  jiang_hao_is_shuai_ge √ 

  jianghaoisshuaige ×

  

4、JS中的變量的數據類型

Undefined:未定義,用var聲明的變量,沒有進行初始化賦值。 var a;

Null:表示為空的引用。例如,空對象、空數組。

Boolean:真假,可選值 true/false

Number:數值類型。可以是小數,也可以是整數。

String:字符串類型。用""或''包裹的內容,成為字符串。

Object(復雜數據類型):后續講解,函數、數組等。。。

 

5、常用的數值函數:

  ① isNaN():用於判斷一個變量或常量,是否為NaN(非數值)

    使用isNaN判斷時,會嘗試使用Number()函數進行轉換,如果能轉換為數字,則不是非數值,結果為false

 "111" 純數字字符串,false "" 空字符串,false "1a"包含其他字符,true

 true/false 布爾類型,false

 

  ② Number():將其他類型轉換為數值類型

  [字符串類型轉數值]

  >>> 字符串為純數值字符串,會轉為對應的數字  "111"->111

  >>> 字符串為空字符串是,會轉為0  ""->0

  >>> 字符串包含其他非數字字符時,不能轉換   "111a"->NaN

  

  [布爾Boolean類型轉數值]

  true -> 1     false -> 0

  

  [null/Undefined轉數值]

  null -> 0     Undefined -> NaN

  

  [Object類型轉數值]

  *(以后再了解) 先調用ValueOf方法,確定函數是否有返回值,再根據上述各種情況判斷。

  

  ③ parseInt:將字符串轉為數值類型

  >>> 空字符串,不能轉。結果為NaN

  >>> 純數值字符串,能轉。 "123" -> "123"  "123.5" -> 123 (小數轉化時,直接抹掉小數點,不進行四舍五入)

  >>> 包含其他字符的字符串。會截取第一個非數值字符前的數值部分。

      "123a456" -> 123   "a123b456" -> NaN

      

  >>> parseInt只能轉String類型,Boolean/null/Undefined 均為NaN

  

  ④ parseFloat:將字符串轉為數值

  >>> 使用方式同parseInt。但是,當轉化小數字符串時,保留小數點;轉化整數字符串時,保留整數;

      "123.5" -> 123.5      "123" -> 123

      

  ⑤ typeof:用來檢測變量數據類型

  未定義 -> Undefined字符串 -> Stringtrue/false -> boolean

  數值  -> Number對象/null -> Object   函數 -> function 

 

 

*/

var a; //聲明變量

a=10;//給變量賦值

 

var width = 10;//聲明變量的同時,直接賦值

 

width="哈哈";

 

var x,y=9,z=10;

 

var b = {};

 

alert(d);

 

 

 

/* [JS中的輸出語句]

* document.write();

* 輸出語句,將write的()中的內容打印在瀏覽器屏幕上;

* 使用時注意:除變量/常量以外的任何內容,打印時必須放到""中。變量/常量必須放到""外。 

* 打印的內容同時有多部分組成時,之間用+鏈接:

* 例如:document.write("左手中的紙牌:"+left+"<br/>");

* alert();

* 彈窗警告,()中的使用方式,同上

*/

 

 

 

 

</script>

 

<script language="JavaScript" src=""></script>

</head>

 

 

<body>

<button onclick="javascript:alert('小碧池!你真點啊!')">有本事點我呀!!!</button>

 

 

 

</body>

 

</html>

 

 

二、JS中的運算符

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script type="text/javascript">

 

/*

算術運算

     + 加、- 減、* 乘、 / 除、 % 取余、++ 自增、-- 自減

     

     

     

     +:有兩種作用,鏈接字符串/加法運算;當+兩邊均為數字時,進行加減運算;當+兩邊有任意一邊為字符串時,

     進行字符串鏈接,鏈接之后的結果仍為字符串。

     

     ++:自增運算符,將變量在原來的基礎上加1;

     --:自減運算符,將變量在原來的基礎上減1;

     

     

     【n++與++n的異同】

     n++:先使用n的值進行計算,計算完然后再把n+1;

     ++n:先把n的值+1,然后再把n+1的值 去運算

     

     相同點:不論n++還是++n,在執行完代碼之后,均會把a的值+1;

     案例:var a = 3;

 var b,c;

     b = a++ +2; // a=3 b=5 a=4

     c = ++a +2; // a=4 a=5 c=7

     document.write( abc   )為557

     

     ————————————————————————————————————————————————

     

 賦值運算

     = 賦值     +=     -=  *=  /=  %=

     

     +=:a+=5;相當於a=a+5;但是前者的執行效率要比后者快

     ————————————————————————————————————————————————

 

關系運算

     == 等於號、===嚴格等於、  != 不等於、>、<、>=、<=

     

     ===:嚴格等於:①類型不同直接返回FALSE ;  ②類型相同再進型下一步判斷;

     ==:等於:①類型相同同===; ②類型不同,將等式兩邊均用number函數轉位數字,在判斷;

     [注意例外]

     null==undefined √;null===undefined ×

     document.write(123=="123")成立;

     ————————————————————————————————————————————————

 

條件運算符(多目運算)

     a>b ? true : false 

     

     有兩個關鍵符號:?和:

     當?前面的部分運算結果為TRUE時,執行:前面的代碼;

     當?前面的部分運算結果為FALSE時,執行:后面的代碼;

     

     多目運算符可以多層嵌套

     例如:

     

      ————————————————————————————————————————————————

  邏輯運算符

     && 與、|| 或、!非

     

     ____________________________________________________________________________________________________________________

     

     【運算符優先級】

     ()

 !  ++ --

 %  /  *

 + -

 >   <   >=    <=

 ==   !=

 &&

 ||

 各種賦值= +=  *=  /=   %=

 

* */

 

 

 

 

 

 

</script>

 

 

</head>

<body>

 

 

</body>

</html>

 

 

 

三、JS中的分支結構

 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

 

<script type="text/javascript">

/*【if-else結構】

1、結構寫法:

if(判斷條件){

//條件為true時執行

}else{

//條件為false時執行

}

2、if()中的表達式,運算之后的結果應該為:

① Boolean: true 真false 假

② String:非空字符串為真空字符串為假

③ Number:0為假一切非0,均為真

④ Null/NaN/Undefined: 全為假

⑤ Object:全為真

3、else{}結構,可以根據具體情況省略;

*/

var num = {};

 

if(num){

//條件為true時執行

document.write("if條件成立");

}else{

//條件為false時執行

document.write("if條件不成立");

}

// num<10?document.write("if條件成立"):document.write("if條件不成立");

 

 

 

/* 【多重if、階梯if】

1、結構寫法:

if(條件一){

// 條件一成立

} else if(條件二){

// 條件一不成立&&條件二成立

 

// else-if 部分,可以有N多個

} else{

// 條件一不成立&&條件二不成立

}

 

2、多重if結構中,各個判斷條件是互斥的!只能選擇其中一條路。

 

3、if/else的{}可以省略,但是一般不提倡;

如果省略{} 則,if/else結構包含的代碼,僅為其后最近的一行(分號結束);

如果省略{} 則,else結構永遠屬於其前方最近的一個if結構。

 

*/

var num2 = 5;

if(num2>5){

document.write("輸入過大");

} else if(num2<5){

document.write("輸入過小");

} else if(num2==5){

document.write("輸入正確");

}

 

if(num2==5) document.write("輸入過大");

 

if(num2==5) document.write("輸入過大");

else document.write("11");

 

document.write("22");

 

 

/* 【嵌套if結構】

1、結構寫法:

if(條件一){

// 條件一成立

if(條件二){

// 條件一成立&&條件二也成立

}else{

// 條件一成立&&條件二不成立

}

}else{

//條件一不成立

}

 

2、if結構可以多重嵌套,但是原則上不超過3層

*/

 

 

 

 

 

/* 【Switch-Case結構】

1、結構寫法:

switch(表達式){

case 常量表達式1:

語句1;

break;

case 常量表達式2:

語句2;

break;

……

default:

語句N

break;

}

2、注意事項:

   ① switch()中的表達式,以及每個case后面的表達式,可以為任何JS支持的數據類型(對象和數組不行);

   ② case后面的所有常量表達式,必須各不相同,否則只會執行第一個;

   ③ case后的常量可以是任何數據類型;同一個switch結構的不同case,可以是多種不同的數據類型;

   ④ switch在進行判斷的時候,采用的是全等判斷===。

   ⑤ break的作用:執行完case代碼后,跳出當前switch結構;

               缺少break的后果:從正確的case項開始,依次執行所有的case和default。原因:⑥↓

   ⑥ switch結構在判斷時,只會判斷一次正確答案,當遇到正確的case項后,將會不再判斷后續項目。依次往下執行。

   ⑦ switch結構的執行速率要快於多重if結構。在多路分支時,可優先考慮使用switch結構。

*/

var num4 = 5;

switch (num4){

case 4:

document.write("這是9的case塊!");

//break;

case 5:

document.write("這是10的case塊!");

//break;

case 6:

document.write("這是11的case塊!");

//break;

default:

document.write("這是default的case塊!");

break;

}

 

 

 

</script>

 

 

 

</head>

 

 

<body>

</body>

</html>

 

 

 

四、JS中的循環結構

 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

 

<script type="text/javascript">

 

/* 【循環結構的步驟】

① 聲明循環變量

② 判斷循環條件

③ 執行循環體(while的{}中所有代碼)操作

④ 更新循環變量

 然后,循環執行② ③ ④

 

 【JS中循環條件支持的數據類型】

① Boolean: true 真false 假

② String:非空字符串為真空字符串為假

③ Number:0為假一切非0,均為真

④ Null/NaN/Undefined: 全為假

⑤ Object:全為真

 

*/

 

/*

* while循環特點:先判斷,再執行;

* do-while循環特點:先執行,再判斷;即便初始條件不成立,do-while循環也至少執行一次;

*/

 

var n = 1; // ① 聲明循環變量

while (n<=5){ // ② 判斷循環條件

document.write("HelloWhile<br />");// ③ 執行循環體操作

n++;// ④ 更新循環變量

}

 

var m = 1;

do{

document.write("HelloDoWhile<br />");

m++;

}while(m<=5);

 

/* 【for循環】

1、for循環有三個表達式,分別為:①定義循環變量 ②判斷循環條件 ③更新循環變量

三個表達式之間,用;分隔。

for循環三個表達式均可以省略,兩個;缺一不可

2、for循環特點:先判斷,再執行;

3、for循環三個表達式,均可以有多部分組成,之間用逗號分隔;但是,第二部分判斷條件需要用&&鏈接,最終結果需要為真/假

*/

 

 

/*

* 1-100求和,采用首尾相加

* (1+100)+(2+99)+……+(50+51)=5050

*/

//for (var n=1,j=5;n<=3&&j>=1;n++,j--) {

//document.write("HelloFor<br />");

//document.write(n+"/"+j);

//}

var sum = 0;

for (var i=1,j=100;i<j;i++,j--) {

if(i<50) document.write("("+i+"+"+j+")+");

else document.write("("+i+"+"+j+")=");

sum+=(i+j);

}

document.write(sum);

 

 

 

</script>

 

 

</head>

<body>

</body>

</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM