首頁 >web前端 >js教程 >深入理解JS中的變數及作用域、undefined與null_javascript技巧

深入理解JS中的變數及作用域、undefined與null_javascript技巧

WBOY
WBOY原創
2016-05-16 16:57:151184瀏覽

Situation One

複製代碼 代碼如下:

代碼如下:

  var i; //全域變數
  //方法名稱是camel命名法  //方法裡面的變數是局部變數


  function sayHello(){
  var x=100;
  alert(x);
  x ;  㜀〜] (x ); //報錯,因為x是局部變量,無法存取



Situation Two

複製程式碼 程式碼如下:
<script><div class="codebody" id="code60604">function sayHello(){<BR>  var x=100; (x==100){<BR>    var y=x 1;<BR>      var y=x 1;<BR>    alert(y); //輸出101<BR>  }<BR> 『alert(不存在塊級作用域,在C#中就不行了! ! ! <BR> <BR>  for(var i=0;i<2;i ){    alert(i)<P>  } //在for循環裡面定義的變數是區塊級作用域<BR> alert(forfori); //因為i是局部變量,所以輸出2<BR> <BR>}sayHello();<P></script>


註:變數使用前可以不用var聲明,這樣的變數會被認為是「全域變數」,但很少這樣用

關於undefined與null 有以下幾種情況的​​,變數的值為undefined

1、變數定義,但沒有賦值,則變數的值為undefined

2、呼叫的方法沒有回傳值,在傳回的值為undefined
3、物件的屬性值不存在,則傳回值為undefined,如:document.ddd

Example1:


if(xx==yy){

  alert('相等');
}

else{

  alert('不等');

}

輸出結果為相等,因為在進行if判斷時,瀏覽器會對xx及yy進行值的判斷,因為兩者都沒有具體的數值,認為他們都是false。

如果if判斷中換成===[全等於符號],則輸出不等!因為===表示要求xx及yy的資料型態和值都要相同才可以!

Example2:




複製程式碼
程式碼🎜>var xx=10var yy='10'; if(xx==yy){   alert('相等');
}

else{
  alert('不等');

}


輸出相等,如果換成===,則輸出不等

Example3:



複製程式碼

程式碼如下:

var n='10'; switch(n){  case 10:     alert('數字');  break;
  case '10':

    alert('字串');
  break;}


輸出 字串

switch中的判斷要考慮類型


總結:if中的判斷是判斷數值,不考慮型別

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn