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

首頁 > 語言 > JavaScript > 正文

JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

2024-05-06 16:25:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題的相關資料,需要的朋友可以參考下
 

 在自己做東西時,遇見了一個問題。就拿博客園的首頁右邊的搜索舉例吧,用控制臺操作。

   JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

  JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

  現在我需要從另外一個地方將數據傳給input,讓其在一刷新的時候就顯示數據。

  這不難啊,于是我按照我的理解做了

  代碼如下:

  JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

  此時,id為zzk_q的值應該為  測試  ,即input框內應該顯示 測試 。但結果。。

  JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

  咦,為什么沒有變呢,不對啊,又來來回回變著法子試一下,還是不行,當然代碼基本還是那樣子的。突然想起我以前遇見過這樣子的問題,仔細回想當時解決的方法(看樣子當時沒理解透,只是找到方法就過去了),想起來了,我試一下,代碼如下:

JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

  看結果:

 JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

  這次成了。第一次遇見這個問題時沒有細想,成功了就跳過了。但這次我開始想為什么呢?為什么呢?怎么會這樣啊,沒辦法理解啊。然后我自己在哪里來回折騰,但還是想不明白。同樣是賦值這倆者有什么差別嗎?差別在哪里???后來才知道是值類型和引用類型,當然是別人給我指出來的(……)。

  然后我就去找這方面的東西看,發現這東西我看過,汗。

  自1997年Javascript被標準化以來,它定義了六種基本類型。直到ES6,JS程序中任何一個值都屬于以下幾種類型之一。

 •Undefined
 •Null
 •Boolean
 •Number
 •String
 •Object

  不過,ES6又加了一個基本類型:Symbol 類型。這個沒多大了解,不作討論,等以后熟悉再說吧,又要學。

  在JavaScript的變量中,有倆種類型的值:基本類型和引用類型的值?;绢愋椭担ㄒ灿腥朔Q為值類型)是簡單地數據段,它是按值訪問的,并對其中的值進行操作。而引用類型值值那些有可能有多個值構成的對象。賦值的時候,解釋器必須確定值是基本類型還是引用類型。

  基本數據類型有:Undefined、Null、Boolean、Number、String。引用類型是保存在內存中的對象,即Object,對象是方法和屬性結合。

  1.類型值的動態屬性

  這是引用類型:

var person = new Object();   person.name = "foo";console.log(person.name);//foodelete person.name;console.log(person.name)://undefined 

  這個例子中,我們先創建了一個空對象,然后將其保存在person變量中,然后給對象添加了一個屬性name,而且給這個屬性賦值了一個字符串“foo”,然后輸出,可以看到輸出了字符串foo,然后我們將這個屬性刪除,輸出undefined。這些說明,我們可以動態的給對象添加屬性和方法,如果不銷毀對象或者刪除屬性,將會一直存在。

  這是基本類型:

var name = "foo";name.age = 22;console.log(name.age);//undefined

   在這個中,我們將一個字符串"foo",保存在一個name變量中,然后也給它添加了一個屬性age,并賦值22,然后輸出,像我以前想的那么該輸出22,但實際情況是undefined。

  這個是否可以理解為基本類型的值是不可變的,而引用類型是可以動態改變的。

  2.復制變量值

  和上面說的一樣,基本類型是按值訪問的。而引用類型呢,在JavaScript和其它語言不同,允許直接訪問內存中的位置,也就是說我們不可以直接操作對象的內存空間,那怎么辦呢?在操作對象時,實際上是對操作對象的引用,引用類型的值是按引用對象訪問的。引用類型的存儲需要內存的棧內存和堆內存共同完成,棧內存保存變量標識符和指向堆內存中該對象的指針,也可以說是該對象在堆內存的地址。

  先看例子:

var num1 =5;var num2 =num1;//5num1+=1; //6num2;//5 

 從一個變量向另一個變量復制基本類型的值,我們會在變量對象上重新創建一個新值,然后把該值復制到新變量分配的位置上。這倆個值是完全對立的,對倆個變量進行其他操作是互不影響的。它們應該是保存在棧內存中,如下圖所示:

JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題 

  看一下引用類型: 

var obj1 = new Object();var obj2 = obj1;obj1.name = "foo";console.log(obj2.name);  //fooobj2.age = 22;console.log(obj1.age);  //22 

  當從一個變量想另一個變量復制引用類型的的值時,也會將該值復制一份放到新的空間中。但是就跟上面說的一樣,引用類型的存儲要棧內存和堆內存一起完成,這個值實際上是一個指針,而這個指針指向存儲在堆中的一個對象。復制操作結束后,倆個變量實際上是同一個指針,也就是引用同一個對象。所以,改變其中的一個變量,另一個變量也會隨之改變。如下圖:

JavaScript給input的value賦值引發的關于基本類型值和引用類型值問題

參看 JavaScript高級程序設計。

  這樣一梳理,就對一開始的問題有些明白了,開頭那個錯誤,一開始,取到input的value(此時為空),復制給title,然后以改變title期望改變input的value。但input的value(可以看成一個變量)就是一個基本類型,復制后,它倆完全獨立了,互不影響。再說成功的,將value拿出來,先將input(對象)復制給title,然后給title添加value屬性,并賦值,此時倆個指向同一個對象,改變一個,也會影響另外一個。恩,就這樣子。

  雖然很多知識從書上或其他地方看了一遍或多遍,但是等你真正遇到時感覺好奇怪。怎么會這樣,然后自己去找答案。等找到或是別人指出后,才發現這個以前看見過,有些甚至自己解決過(不能說解決,只能說沒有深究,沒有徹底弄懂)。還有一些大學的基礎都忘的七七八八了(本來就學的不好)。連棧內存和堆內存都去搜了一下。恩,既然決定走這條路了,就好好學習吧。 

  最后:

Good good coding,day day up!

PS:(集合和引用類型、基本數據類型賦值不一樣)一個簡單的java問題 先后的賦值問題

<span style="white-space:pre">  </span>List<person> list = new ArrayList<person>(); <span style="white-space:pre">  </span>person pp = new person(); <span style="white-space:pre">  </span>list.add(pp); <span style="white-space:pre">  </span>pp.setIvalue(12); <span style="white-space:pre">  </span>pp.setIvalue(20); <span style="white-space:pre">  </span>pp = null;; <span style="white-space:pre">  </span>int b = 0; <span style="white-space:pre">  </span>int a = b; <span style="white-space:pre">  </span>b = 8; <span style="white-space:pre">  </span>System.out.println(a); <span style="white-space:pre">  </span>for (person ppp : list) { <span style="white-space:pre">   </span>ppp.getIvalue(); <span style="white-space:pre">  </span>} <span style="white-space:pre"> </span> 

list里面的對象加進去就改不了,但是可以修改對象里面的屬性值。

簡單string里面的值就改變不了

結果:

11  
8888  

切記:最好還是按正常來寫,避免混淆



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品中文字幕久久久久久| 欧美黑人又粗大| 欧美怡红院视频一区二区三区| 国产日韩欧美在线视频观看| 亚洲国产欧美一区二区三区同亚洲| 成人美女免费网站视频| 亚洲天堂av在线免费观看| 91在线观看免费高清| 久热精品视频在线| 久久国产精品网站| 人人做人人澡人人爽欧美| 欧美激情在线狂野欧美精品| 色中色综合影院手机版在线观看| 九九视频直播综合网| 26uuu国产精品视频| 亚洲第一色中文字幕| 国产精品男人爽免费视频1| 一区二区三区视频观看| 九九热视频这里只有精品| 精品人伦一区二区三区蜜桃网站| 在线电影中文日韩| 亚洲一级免费视频| 亚洲在线免费观看| 成人黄色片网站| 精品成人69xx.xyz| www日韩欧美| 国产午夜精品久久久| 亚洲欧洲视频在线| 九九热视频这里只有精品| 蜜臀久久99精品久久久久久宅男| 日韩av中文字幕在线播放| 欧美激情久久久久久| 欧美日韩一区二区免费在线观看| 8x海外华人永久免费日韩内陆视频| 亚洲福利视频免费观看| 欧美一级高清免费播放| 欧美激情第1页| 欧美激情精品久久久| 韩国欧美亚洲国产| 中文字幕日韩av综合精品| 欧洲一区二区视频| 欧美与欧洲交xxxx免费观看| 久久精品国产96久久久香蕉| 久久天天躁狠狠躁夜夜躁| 亚洲国产成人爱av在线播放| 久久av在线看| 91国产一区在线| 亚洲视频axxx| 欧美裸体xxxx| 26uuu久久噜噜噜噜| 亚洲自拍另类欧美丝袜| 久久91亚洲精品中文字幕奶水| 欧美激情久久久久| 国产精品99久久久久久久久久久久| 精品国产31久久久久久| 国产成人一区二区| 精品欧美aⅴ在线网站| 亚洲激情视频在线观看| 中文字幕少妇一区二区三区| 久久亚洲私人国产精品va| 亚洲精品videossex少妇| 亚洲成人av片在线观看| 国产91精品视频在线观看| 91色视频在线导航| 久久91精品国产91久久久| 欧美交受高潮1| 亚洲3p在线观看| 精品免费在线视频| 亚洲xxxx18| 91久久精品国产91性色| 亚洲精品欧美一区二区三区| 亚洲成人激情小说| 国产精品草莓在线免费观看| 久久亚洲精品视频| 美女视频久久黄| 日韩在线观看免费全集电视剧网站| 久久国产色av| 国产一区视频在线播放| 美女久久久久久久久久久| 中文字幕日韩精品有码视频| 欧美日韩免费在线| 国产在线一区二区三区| 92看片淫黄大片看国产片| 日韩成人中文字幕在线观看| 日韩在线www| 日本91av在线播放| 国产欧美精品在线播放| 不卡中文字幕av| 色阁综合伊人av| 亚洲自拍av在线| 日韩中文字幕在线播放| 亚洲一区av在线播放| 国产精品久久久久久久久久久久久久| 日韩有码在线电影| 久久成人综合视频| 久久99亚洲精品| 韩国日本不卡在线| 欧美片一区二区三区| 日韩精品在线看| 中文字幕久久亚洲| 日日摸夜夜添一区| 97视频在线观看免费| 国产精品入口免费视频一| 国产情人节一区| 精品国产31久久久久久| 久久久久久久久久久免费| 国产一区二区在线播放| 国产视频精品久久久| 日韩精品中文字幕在线| 国产精品爱啪在线线免费观看| 91精品免费看| 一本一本久久a久久精品牛牛影视| 国产精品大陆在线观看| 成人夜晚看av| 7777精品久久久久久| 丝袜情趣国产精品| 成人在线视频网站| 亚洲高清免费观看高清完整版| 久久综合伊人77777蜜臀| 日韩av电影在线播放| 亚洲自拍另类欧美丝袜| 亚洲电影免费观看高清完整版| 最近2019中文免费高清视频观看www99| 亚洲综合中文字幕在线| 亚洲图片制服诱惑| 亚洲欧美日韩一区二区三区在线| 日韩美女在线看| 欧美日韩免费网站| 精品人伦一区二区三区蜜桃免费| 国产精品夜间视频香蕉| 欧美极度另类性三渗透| 亚洲人午夜精品| 欧美性猛交xxxx乱大交| 亚洲国产99精品国自产| 欧美激情欧美激情在线五月| 精品国产拍在线观看| 久久国产加勒比精品无码| 欧美日韩国产va另类| 亚洲欧美日韩精品久久奇米色影视| 在线亚洲欧美视频| 日本成人黄色片| 国产自摸综合网| 亚洲国产成人精品一区二区| 亚洲最大福利视频| 国模吧一区二区| 久久久久久噜噜噜久久久精品| 亚洲在线免费视频| www.99久久热国产日韩欧美.com| 国产综合久久久久久| 久久久久久999| 日本一区二区三区四区视频| 91精品国产91久久久| 91视频免费在线| 久久青草精品视频免费观看| 日韩在线免费av| 热re91久久精品国99热蜜臀| 在线观看久久久久久| 成人黄色影片在线| 在线亚洲男人天堂| 欧美中文在线字幕| 欧美另类老肥妇| 丝袜亚洲欧美日韩综合| 日韩av电影在线播放| 亚洲国产精品高清久久久|