熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JavaScript基礎篇之變量作用域、傳值、傳址的簡單介紹與實例

2013-11-15 12:07:48  來源: JSP教程 

  javascript:變量的聲明
以下是幾種聲明變量的方式

復制代碼 代碼如下:
var value;
var valuevaluevalue;//同時聲明多個變量但是這些變量的值都是undefined
var i = j = k=;//變量聲明初始化一體
//如果大家嘗試讀一個不存在的變量(值)會報錯!但是嘗試給一個未使用Var聲明的變量賦值javascript
//會隱式的聲明改變量而且聲明了的變量還是全局的細節所以大家創建變量都盡量使用Var
//變量的作用域(這個問題也容易出大家要搞明白)

  
javascript:變量的作用域
這些都是細節和我一樣初學的一定要注意避免!

復制代碼 代碼如下:
var golbal = "golbal"; //全局變量
var local ="local";
function area()
{
//局部變量的優先級比全局變量的高
var local = "arealocal"
//當函數體內聲明的變量名和全局變量名相同時javascript 會隱藏全局變量
var golbal ="areagolbal";

documentwrite("local is :"+local + "and golbal is :" + golbal +"<br />");
}

area();
//輸出:local is :arealocaland golbal is :areagolbal

  
在嵌套的函數裡面定義局部變量效果會怎麼樣呢?看下面

復制代碼 代碼如下:
var hope = "moremoney";
function createmore()
{
var hope = "have more money";//局部
function createmoreto()//嵌套函數
{
var hope = "have more money to much";//局部
documentwrite("Createmoreto hope is :"+hope +"<br />");
//輸出:Createmoreto hope is :have more money to much
}
createmoreto();//調用
documentwrite("Createmore hope is :" +hope +"<br />");
//輸出Createmore hope is :have more money
}
createmore(); //調用

  
javascript傳值和傳址
這裡也是比較重要的概念!不要漏了

  傳值 傳址 復制 實際復制的值存在不同的獨立的拷貝 復制的只是對數字的引用如果通過這個新的引用修改了數值這個改變對最初的引用來說也是可見的 傳遞 傳遞給函數的是值的獨立拷貝對它的改變在函數外沒有影響 傳遞給函數的是對數值的引用如果函數通過傳遞給它的引用修改了數值這個改變也是可見的 比較 比較這兩個對立的值通常逐字節的比較以判斷是否相等 比較的是兩個引用以判斷它們引用的是否是同一個數值

  javascript基本類型和引用類型

  javascript的基本規則是基本類型通過傳值來操作引用類型通過傳址來操作(什麼事值類型或者什麼事引用看我上一篇)
按值傳遞

復制代碼 代碼如下:
var value = ;
var copyvalue = value; //將value賦給另一個變量
function addTotal(totalarg)
{
total+= arg; //total = total + arg 效果等同
}
//調用函數傳兩個參數(大家可能會認為這個函數改變了全局變量的值其實沒有函數用的也是對立拷貝)
addTotal(valuecopyvalue);
if(value == ) copyvalue = ;
documentwrite("total t" + value + "and copyvalue tt" + copyvalue+"<br />");
//最後輸出:total and copyvalue

  
按址傳遞

復制代碼 代碼如下:
var array = new Array("Javascccp");
var objarray = array;
function modifyArray(arr)
{
arr[] = "JAVASCRIPT";
}
//沒調用函數前
documentwrite(array[] +"<br />");
//輸出Javascccp;
//調用函數後
modifyArray(array);
documentwrite(array[]+"<br />");
//輸出大寫JAVASCRIPT
//通過修改objarray會是一樣的效果
objarray[] = "Frank";
documentwrite(array[]+"<br />");
//輸出Frank;

  
小結:上面內容希望大家都不要錯過對學習後面的知識還是很有幫助的!


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20357.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.