亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

javascript的變量、傳值、傳址、參數之間關系

2024-05-06 16:23:44
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了javascript的變量、傳值、傳址、參數之間關系的相關資料,需要的朋友可以參考下

先把收獲晾一下:

1.javascrip變量包含兩種類型的值,一種為引用類型的值,一種是基本類型的值。引用類型包括:Array,Object,Function(可以這么理解,非基本類型的都是引用類型);5種基本類型包括:undefined,null,string,boolean,number

2.函數的參數的傳遞的機制是復制變量值。

書上說:”把函數外部的值復制給函數內部的參數,就和把值從一個變量復制給另一個變量一樣?;绢愋偷膫鬟f如同基本類型變量的復制一樣,而引用類型的則如同引用類型變量的復制一樣。“

”當一個變量復制引用類型的值時,同樣也會將存儲在變量對象中的值復制一份放到為新變量分配的空間中。不同的是這個值的副本實際上是一個指針,而這個指針指向存儲在堆中的一個對象。復制操作結束后,兩個變量實際上將引用同一個對象。因此改變其中一個變量,就會影響到另一個變量。“

【注意:復制引用類型的值,才是傳址】

3.參數實際上是函數的局部變量。

----------------------------------------------------------------------------

基本概念的解釋:

傳值:把A的數值傳到B,改變B,A不會跟著變,B存的是跟A一樣的值;

傳址:把A的地址傳到B,改變B,A同時跟著變,B存的只是A的地址(類似電腦的快捷方式)。

一個具有值類型(value type)的數據存放在棧內的一個變量中。即是在棧中分配內存空間,直接存儲所包含的值,其值就代表數據本身。值類型的數據具有較快的存取速度。

一個具有引用類型(reference type)的數據并不駐留在棧中,而是存儲于堆中。即是在堆中分配內存空間,不直接存儲所包含的值,而是指向所要存儲的值,其值代表的是所指向的地址。當訪問一個具有引用類型的數據時,需要到棧中檢查變量的內容,該變量引用堆中的一個實際數據。引用類型的數據比值類型的數據具有更大的存儲規模和較低的訪問速度。

----------------------------------------------------------------------------

下面是三個問題。

為什么change(a)函數執行完之后,外面的a沒有受干擾呢?

【問題1】:

 

 
  1. <script> 
  2. var a = [1, 2, 3]; 
  3. function change(a) { 
  4. console.log(a);//[1,2,3] 
  5. a = 2; //傳值 
  6. console.log(a);//2 
  7. change(a); 
  8. console.log(a); //[1,2,3]  
  9. </script> 

問題1解答:因為change(a)的執行過程是這樣的,首先將對象a(數組)傳入到change以后,被復制給change的參數a。而后a=2是一個賦值語句,變成傳值。此時a=2是值類型,并不涉及引用地址的問題。所以并沒有影響外部的a。

為什么change(a)函數執行完之后,外面的a受到干擾呢?

【問題2】:

 

 
  1. <script> 
  2. var a = [1, 2, 3]; 
  3. function change() {  
  4. a = 2;//傳值 
  5. change(); 
  6. console.log(a); //2  
  7. </script> 

問題2解答:當執行change()的時候,函數在自己的執行環境中找尋作用域鏈,活動對象(activation object)并不包含變量a,于是沿著作用域鏈向上找,找到全局執行環境,發現變量a,于是此時函數內部的a和外部a在內存上是同一個地址,自然函數內部a變了,外部也會跟著變。

解析:問題2和問題1的區別在于,問題2并沒有引入參數,所以不涉及復制變量的事情。

為什么change(a)函數執行完之后,外面的a受到干擾呢?

【問題3】:

 

 
  1. <script> 
  2. var a = [1, 2, 3]; 
  3. function change(b) {  
  4. b[0] = 2; 
  5. change(a); 
  6. console.log(a); //[2,2,3] 
  7. </script> 

問題3解答:這個和問題1非常類似,唯獨不一樣的就是a=2,換成了b[0]=2,我一開始也很疑惑,不說復制嗎?參數b應該是個復制值,怎么會影響到外面的a呢?

的確,change函數執行時,參數b是a的復制值。因為a是引用類型,所以在函數內部是b和a按引用來訪問的是一個地址的對象。b[0]=2的出現,并不影響在函數內部b和a引用的是同一個對象。

為什么change(a)函數執行完之后,外面的a沒有受到干擾呢?

【問題4】:

 

 
  1. var a = [1, 2, 3]; 
  2. function change(b) {  
  3. console.log(b);//[1,2,3] 
  4. b=2; 
  5. b[0] = 2; 
  6. change(a); 
  7. console.log(a); //[1,2,3] 

問題4解答:change(b)執行過程是這樣的,a對象傳入change函數,將值和地址復制給b。b=2這句,此時b變成值類型了,并不涉及地址引用的問題,之后b[0]=2這句實際上毫無意義,因為此時b已經不是數組了,自然不具有b[0]這樣的索引方式。所以b與a的地址引用關系其實在b=2之后就消失了。此時外界的a仍然是[1,2,3];

以上所述就是本文的全部內容了,希望大家能夠喜歡。

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂免费观看| 国产精品久久久久9999| 国产午夜精品视频免费不卡69堂| 亚洲深夜福利视频| 日韩精品在线视频美女| 国产91在线播放九色快色| 国产精品亚洲网站| 中文字幕久热精品视频在线| 最近中文字幕日韩精品| 欧美电影免费观看大全| 97香蕉久久超级碰碰高清版| 久久精品电影一区二区| 在线观看精品国产视频| 精品久久久精品| 91免费视频网站| 国产ts人妖一区二区三区| 夜色77av精品影院| 亚洲aaa激情| 成人在线观看视频网站| 久久亚洲精品成人| 成人a在线视频| 精品亚洲一区二区三区在线播放| 日韩亚洲综合在线| 成人福利在线视频| 日韩在线中文字| 日韩一区在线视频| 45www国产精品网站| 韩国欧美亚洲国产| 国产91网红主播在线观看| 欧美精品在线第一页| 欧美成人sm免费视频| 日本精品中文字幕| 日本精品久久中文字幕佐佐木| 91精品国产91| 欧美夫妻性生活视频| 国产成人精品电影| 久久久久久久久久久亚洲| 亚洲在线www| 国产精品人成电影| 亚洲国产精品国自产拍av秋霞| 日韩一区av在线| 日本一区二区在线播放| 中文字幕亚洲综合久久筱田步美| 久久在线观看视频| 98精品国产自产在线观看| 深夜福利一区二区| 亚洲精品成人久久久| 啪一啪鲁一鲁2019在线视频| 久久激情五月丁香伊人| 亚洲激情电影中文字幕| 中文字幕v亚洲ⅴv天堂| 亚洲va国产va天堂va久久| 久热精品视频在线免费观看| 午夜精品一区二区三区在线播放| 亚洲欧美中文日韩在线| 日韩电影免费观看在线观看| 国产精品99免视看9| 国产在线观看精品一区二区三区| 精品丝袜一区二区三区| 久久国产加勒比精品无码| 亚洲福利视频二区| 国产裸体写真av一区二区| 亚洲区免费影片| 久久久久久综合网天天| 国产精品视频大全| 欧美国产日韩在线| 久久久人成影片一区二区三区| 91久久精品国产91久久| 91精品国产成人| 亚洲xxxx做受欧美| 日韩高清欧美高清| 亚洲国产第一页| 一本大道亚洲视频| 久久躁狠狠躁夜夜爽| 国产视频精品xxxx| 国产一区二区三区精品久久久| 亚洲欧洲在线视频| 亚洲精品美女在线观看| 日韩av中文字幕在线| 欧美激情综合色综合啪啪五月| 欧美激情国产高清| 狠狠躁夜夜躁久久躁别揉| 美日韩丰满少妇在线观看| 98午夜经典影视| 国产精品成人播放| 成人信息集中地欧美| 91av在线精品| 777777777亚洲妇女| 亚洲毛片在线观看.| 日韩av最新在线观看| 国产精品三级在线| 久久精品中文字幕| 国产91九色视频| 欧美裸体xxxx极品少妇| 国产亚洲精品久久久优势| 九九热99久久久国产盗摄| 国产精品丝袜高跟| 日韩成人性视频| 欧美亚洲国产日本| 国产成人aa精品一区在线播放| 欧美激情综合色综合啪啪五月| 国产精品美女主播在线观看纯欲| 欧美一级在线播放| 国产精品自拍偷拍视频| 欧美日韩在线第一页| 亚洲激情第一页| 日本免费一区二区三区视频观看| 国产精品国模在线| 欧美性资源免费| 欧美成年人视频网站欧美| 日韩电影在线观看永久视频免费网站| 亚洲人成毛片在线播放| 亚洲最大的成人网| 亚洲香蕉成人av网站在线观看| 麻豆精品精华液| 精品久久中文字幕久久av| 欧美在线影院在线视频| 欧美日韩日本国产| 亚洲精品99999| 亚洲欧美综合另类中字| 日韩乱码在线视频| 久久久久久九九九| 91高清视频免费| 久久偷看各类女兵18女厕嘘嘘| 裸体女人亚洲精品一区| 国产午夜精品全部视频播放| 美女少妇精品视频| 亚洲精品之草原avav久久| 国产亚洲成精品久久| 亚洲综合中文字幕在线| 九九精品在线观看| 日韩免费中文字幕| 精品偷拍一区二区三区在线看| 久久人人爽人人爽爽久久| 欧美第一黄色网| 欧美日韩美女在线观看| 91精品视频观看| 美女视频久久黄| 亚洲性线免费观看视频成熟| 国产丝袜精品第一页| 国产精品扒开腿爽爽爽视频| 亚洲精品自在久久| 国产精品69精品一区二区三区| 欧美激情国内偷拍| 姬川优奈aav一区二区| 亚洲精品资源美女情侣酒店| 色yeye香蕉凹凸一区二区av| 久久精品视频网站| 性欧美长视频免费观看不卡| 欧美巨猛xxxx猛交黑人97人| 福利二区91精品bt7086| 色悠悠久久久久| 亚洲无限乱码一二三四麻| 国产精品伦子伦免费视频| 最近2019中文字幕大全第二页| 亚洲欧美日韩第一区| 欧美日韩激情小视频| 亚洲大胆美女视频| 久久国产精品久久国产精品| 国产精品18久久久久久首页狼| 久久人人爽人人爽人人片av高清| 国产在线观看精品一区二区三区| 色综合色综合久久综合频道88| 国产精品精品久久久久久|