JavaScript-基礎文法(2)

來源:互聯網
上載者:User

JavaScript-基礎文法(2)
if語句

var a = 3;        if(a==4){            alert("yes");        }else{            alert("no");        }//no,但是改一下,if(a=4),會列印yes,a被賦值為了4,!0        // 所以一般都是常量放左邊,if(4==x),如果刪=,就會報錯

其餘的和java是一樣的
switch語句
和java用法相同,只是這個接收的類型多

關於switch和if的使用:
如果是一個區間,或結構運算完是boolean型的進行判斷的時候用if
如果對幾個固定的值進行判斷的話,可以用switch,它一載入,語句會進記憶體,答案可在記憶體中進行選擇。


迴圈語句:

var x = 1;        document.write("");       while(x<5){           //alert("x="+x);          // document.write(" x = "+x+"
")//將資料寫到當前頁面 document.write("x = "+x+"
"); x++; } document.write(""); for(var i = 0;i<5;i++){//別寫順手了。寫成int i document.write("i = "+i+"
"); } w:for(var i = 1;i<3;i++){ //w是標號, for(var j = 1;j<3;j++){ document.write("i = "+i); break w;//跳出的標號所在的迴圈 } }

數組:

Js的數組定義了兩種方式:
1. var arr = [1,2,3],var brr = [];
2.var arr = new Array();

//第一種            document.write("======================================
"); var arr = [1,2,3]; // alert(typeof(arr));//物件類型,object // alert("len="+arr.length);//數組長度 arr[1] = 250; arr[4] = 666;//Js數組特點,數組長度是可變的 arr[2] = "hello"; arr[5] = true;//Js數組特點,元素類型任意 for(var i = 0;i"); } //PS:數組操作最好儲存同一類型 document.write("======================================
"); //第二種 //var brr = new Array();//相當於var arr = []; //var brr = new Array(10);數組定義,並長度是10 var brr = new Array(10,9,8,7,6);//數組定義,元素是10,9,8,7,6 document.write(brr[2]+"
");

函數:

定義格式:通過指定的關鍵字來定義
function 函數名(參數列表)
函數體
return 返回值;(如果沒有具體的返回值,return 可以省略)
function sum(x,y){//因為是未知內容,所以不需定義var                return x+y;            }            alert(sum(3,1));//掉用

細節:
1.只要使用了函數的名稱,就是對該函數的調用
2.函數中有一個數組(argument),在對傳入的參數進行儲存
function sum(x,y){                alert(x+":"+y);            }            sum();           sum(3);//3:undefined,可見Js不存在重載,函數定義幾個參數,就該傳遞幾個            function add(x,y){                alert(arguments.length);//5                for(var i = 0;i");                }            }            add(1,2,3,4,5);


3.

function sum(x,y){              return 100;          }            var he = sum();//如果var he = sum;,會彈出sum函數的代碼            alert("he = "+he);            var hee = sum;            alert(hee);//想當於alert(sum)            alert(hee(1,3));//100            function show(){                alert("run");            }            alert(show());//列印 run  ,  undefined

Js是基於對象的,所以底層都是對象,函數名實際上就是底層對象名,var he = sum();正常返回100,如果沒寫括弧,會直接把對象引用sum的地址賦值給he,也就是函數對象具有了兩個函數名,再執行alert,如果he指向的是對象,那麼以字串形式列印,就是該函數的代碼定義格式

動態函數:
* Js的動態函數
* 使用的是JS中內建的一個對象Function
* 但是用的不是很多,一般還是普通函數
* 參數列表,函數體都是通過字串動態指定的
* 而普通函數的參數列表和函數體已經寫死了,無法改變
*/

function add(x1,y1){                return x1+y1;            }            var add1 = add(1,2);            alert(add1);            var result = new Function("x,y","var sum; sum = x+ y;return sum;");            var sum = result(1,2);            alert("sum = "+sum);

匿名函數:

//匿名函數:沒有名字,函數的簡寫形式
var result = function (a,b){                return a+b;            }            alert(result(1,2));        /*==================================*/            function H(){                alert("H");            }            var  HH = H();           /*簡寫形式如下*/            var hh = function(){                alert("H");            }

quantum變數和局部變數:


Js的全域變數與Java有極大的不同
<script type="text/javascript">        for(var x = 1;x<5;x++){            document.writeln("x = "+x);        }        document.writeln("x = "+x);    </script>    <script type="text/javascript">        document.writeln("x = "+x);    </script>

//for中定義的x的範圍,不僅僅是它所在的局部<script>片段中有效,可以簡單的理解為在整個頁面都效


Js的局部變數:
<script type="text/javascript">       function show(){           var x = 1;//函數裡定義的變數是局部的       }        document.writeln("x = "+x);//訪問不到    </script>

PS:在指令碼中定義的變數是全域的,在函數中定義的變數是局部的,最好是有區別的定義,避免出現一些不必要的問題

var x = 3;//全域的x       function show(x){         x = 8;//局部變數的x       }        show(x);        document.writeln("x = "+x);//3

Js的常見對象:

1.Object:所有對象的god
方法:
(1).toString():將對象變成字串
function show(){            alert("run");        }        alert(show.toString());        var arr = [1,2,3,4];        alert(arr.toString());//toString,可省略        var ab = function(){            alert("ni");        }        alert(ab);

(2).valueOf():和toString(),差不多,使用方式 對象.valueOf();
 var arr = [1,2,3,4];        alert(arr.valueOf());var obj = new Object("asd");//-> var obj = new Object() , obj = "asd";alert(obj.valueOf());

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.