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:
複製程式碼}
else{
alert('不等');
}
輸出相等,如果換成===,則輸出不等
Example3:
複製程式碼
程式碼如下:
case '10':
alert('字串');
break;}
輸出 字串
switch中的判斷要考慮類型
總結:if中的判斷是判斷數值,不考慮型別