国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:48:13
字體:
供稿:網(wǎng)友
這篇文章介紹了變量的作用域,傳值,傳址的一些簡單使用,有需要的朋友可以參考一下

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

復(fù)制代碼 代碼如下:


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


javascript:變量的作用域
這些都是細(xì)節(jié),和我一樣初學(xué)的一定要注意避免!

復(fù)制代碼 代碼如下:


var golbal = "golbal"; //全局變量
var local ="local";
function area()
{
//局部變量的優(yōu)先級比全局變量的高
var local = "arealocal"
//當(dāng)函數(shù)體內(nèi)聲明的變量名和全局變量名相同時,javascript 會隱藏全局變量
var golbal ="areagolbal";

document.write("local is :"+local + "and golbal is :" + golbal +"<br />");
}

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


在嵌套的函數(shù)里面定義局部變量,效果會怎么樣呢?看下面:

復(fù)制代碼 代碼如下:


var hope = "moremoney";
function createmore()
{
var hope = "have more money";//局部
function createmoreto()//嵌套函數(shù)
{
var hope = "have more money to much";//局部
document.write("Createmoreto hope is :"+hope +"<br />");
//輸出:Createmoreto hope is :have more money to much
}
createmoreto();//調(diào)用
document.write("Createmore hope is :" +hope +"<br />");
//輸出:Createmore hope is :have more money
}
createmore(); //調(diào)用


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

傳值傳址

復(fù)制實際復(fù)制的值,存在不同的、獨立的拷貝。復(fù)制的只是對數(shù)字的引用。如果通過這個新的引用修改了數(shù)值,這個改變對最初的引用來說也是可見的。

傳遞傳遞給函數(shù)的是值的獨立拷貝對它的改變在函數(shù)外沒有影響傳遞給函數(shù)的是對數(shù)值的引用,如果函數(shù)通過傳遞給它的引用修改了數(shù)值,這個改變也是可見的。

比較比較這兩個對立的值,通常逐字節(jié)的比較,以判斷是否相等比較的是兩個引用,以判斷它們引用的是否是同一個數(shù)值。

javascript:基本類型和引用類型

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

復(fù)制代碼 代碼如下:


var value = 1;
var copyvalue = value; //將value賦給另一個變量
function addTotal(total,arg)
{
total+= arg; //total = total + arg 效果等同
}
//調(diào)用函數(shù),傳兩個參數(shù)(大家可能會認(rèn)為這個函數(shù)改變了全局變量的值,其實沒有,函數(shù)用的也是對立拷貝)
addTotal(value,copyvalue);
if(value == 1) copyvalue = 2;
document.write("total /t" + value + "and copyvalue /t/t" + copyvalue+"<br />");
//最后輸出:total 1and copyvalue 2


按址傳遞

復(fù)制代碼 代碼如下:


var array = new Array("Javascccp");
var objarray = array;
function modifyArray(arr)
{
arr[0] = "JAVASCRIPT";
}
//沒調(diào)用函數(shù)前
document.write(array[0] +"<br />");
//輸出Javascccp;
//調(diào)用函數(shù)后
modifyArray(array);
document.write(array[0]+"<br />");
//輸出大寫JAVASCRIPT
//通過修改objarray會是一樣的效果
objarray[0] = "Frank";
document.write(array[0]+"<br />");
//輸出Frank;


小結(jié):上面內(nèi)容希望大家都不要錯過,對學(xué)習(xí)后面的知識還是很有幫助的!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 漳浦县| 隆安县| 新田县| 织金县| 手游| 平定县| 石门县| 甘洛县| 临猗县| 瓦房店市| 长垣县| 广州市| 嵊泗县| 方城县| 镇宁| 隆安县| 宁城县| 库尔勒市| 潼南县| 黔东| 平顺县| 双城市| 西昌市| 涞水县| 巫溪县| 于田县| 南和县| 安康市| 沁源县| 昌平区| 邢台县| 东丽区| 高陵县| 藁城市| 岳池县| 璧山县| 塔城市| 长宁区| 民丰县| 承德县| 无为县|