最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript面試題(指針、帽子和女朋友)

 更新時(shí)間:2016年11月23日 15:57:25   作者:我叫blue  
本文小編給大家分享一道js面試題--指針、帽子和女朋友的題目,非常有意思,感興趣的朋友參考下吧

首先,事情開始于一道面試題

<script>
function A(){
this.name="";
this.age=18;
}
var a1=new A();
a1.name="尼古拉斯";
var a2=a1;
a2.name="blue";
console.log(a1.name); //變成blue了
var str1="尼古拉斯";
var str2=str1;
str2="blue";
console.log(str1); //沒變,還是尼古拉斯
</script>
簡單來說
a2=a1;
a2.name=xxx; //a1.name會(huì)變
str2=str1;
str2=xxx; //str1不會(huì)變

歡迎覺得廢話太多的同學(xué)直接翻到最后看“技術(shù)流解釋”哈,那么我們開始

套用一句比較俗的話:“道理我都懂,可是為什么字符串就不會(huì)變呢”,JavaScript作為高級語言并沒有指針的概念,但卻又總被這事兒困擾,今天我就想試試讓大家理解這個(gè)概念,如果要弄明白這個(gè)事情,請先來弄明白一個(gè)特別簡單的事情:

假設(shè)你有女朋友叫夢琪,喜歡帶黃色帽子,你幫她買了頂紅色帽子,請問:夢琪帶什么顏色的帽?

答:紅色

假設(shè)你有女朋友叫夢琪,喜歡帶黃色帽子,你直接換了個(gè)喜歡帶紅色帽子的女朋友,請問:夢琪帶什么顏色的帽子?

答:還是黃色,沒變

如果我們理解了上面這個(gè)花心蘿卜和戴帽子的女朋友的問題,那么問題就變得非常簡單,用代碼再表示一遍:

//情況1:換帽子
你.女朋友=夢琪;
你.女朋友.帽子=紅色;
console.log(夢琪.帽子); //紅色
//情況2:換女朋友
你.女朋友=夢琪;
你.女朋友=安易;
console.log(夢琪.帽子); //黃色,沒變

簡單來說,你換女朋友了,關(guān)人家帽子啥事,對吧

為了徹底弄明白問題的步驟1/2:

讓我們把這個(gè)本就混亂的關(guān)系搞得更亂一些吧[捂臉]

假設(shè)張三和李四,都找了同一個(gè)女朋友,張三給她買了一頂帽子,請問:李四的女朋友換帽子了沒?

答:換了

假設(shè)張三和李四,都找了同一個(gè)女朋友,張三扛不住了,又新找了個(gè)女朋友,請問:這跟李四女朋友的帽子有關(guān)系嗎?

答:有毛關(guān)系啊

上面這個(gè)混亂的關(guān)系,用程序表述出來就是:

//情況1.換帽子
張三女朋友=李四女朋友; //傳說中的引用:第一次見到能把出軌說的這么清新脫俗的
張三女朋友.帽子=綠色的帽子;
console.log(李四女朋友.帽子); //變了,綠的
//情況2.跟帽子有毛關(guān)系
張三女朋友=李四女朋友;
張三女朋友=新的女朋友;
console.log(李四女朋友.帽子); //不知道什么顏色,反正沒變

為了徹底弄明白問題的步驟2/2:

直接上代碼了,解釋見注釋哈

//情況1:帽子
var 張三女朋友=new 女朋友(); //太方便了有沒有
var 李四女朋友=張三女朋友; //又引用了
張三女朋友.帽子=紅的;
console.log(李四女朋友.帽子); //紅的,變了
//情況2:跟帽子有毛關(guān)系
var 張三女朋友=new 女朋友();
var 李四女朋友=張三女朋友;
張三女朋友=另一個(gè);
console.log(李四女朋友.帽子); //沒變,跟帽子有毛關(guān)系

所以,現(xiàn)在請跟隨我再來重新看一遍上面的問題

//情況1
var a1=new A();
var a2=a1;
//注意:在這個(gè)時(shí)候,a1和a2就是同一個(gè)東西,引用嘛,你懂的
a2.name="blue"; //你給女朋友,買了頂新的帽子
console.log(a1.name); //她的帽子是Blue色的
//情況2
var str1="aaa";
var str2=str1;
//注意:這個(gè)時(shí)候,str1和str2也是同一個(gè)東西,也是引用
str2="blue"; //你直接換了個(gè)女朋友
console.log(str1); //你原先女朋友沒啥變化

人上了年紀(jì)就會(huì)很啰嗦,直接上圖多好:

情況1:a2.name="blue"

情況2:str2="blue"

==========================純技術(shù)流分隔線==========================

1.指針:代表一個(gè)變量或?qū)傩灾赶蛘l

2.賦值:代表改變變量或?qū)傩缘闹赶?/p>

合起來用:

a1=a2;
a2.name='blue';
//改變a2.name指向了'blue';但a1和a2依然指向同一個(gè)對象,所以:a1.name=>'blue'
str1=str2;
str2='blue';
//改變str2指向了'blue';這時(shí)str1和str2不再指向同一對象,所以:str1不變

以上所述是小編給大家介紹的JavaScript面試題(指針、帽子和女朋友),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JavaScript中Array對象用法實(shí)例總結(jié)

    JavaScript中Array對象用法實(shí)例總結(jié)

    這篇文章主要介紹了JavaScript中Array對象用法,結(jié)合實(shí)例形式總結(jié)分析了Array數(shù)組對象的常用屬性與方法的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2016-11-11
  • 仿Google和Windows Live的拖拽

    仿Google和Windows Live的拖拽

    仿Google和Windows Live的拖拽...
    2006-11-11
  • 詳解js創(chuàng)建對象的幾種方法及繼承

    詳解js創(chuàng)建對象的幾種方法及繼承

    這篇文章主要介紹了js創(chuàng)建對象的幾種方法及繼承,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • javascript的解析執(zhí)行順序在各個(gè)瀏覽器中的不同

    javascript的解析執(zhí)行順序在各個(gè)瀏覽器中的不同

    javascript是一種解釋型語言,它的執(zhí)行是自上而下的。由于各個(gè)瀏覽器對它的理解有所差異,所以我們有必要深入理解js的執(zhí)行順序
    2014-03-03
  • 如何用前端html實(shí)現(xiàn)2024煙花效果

    如何用前端html實(shí)現(xiàn)2024煙花效果

    這篇文章主要給大家介紹了關(guān)于如何用前端html實(shí)現(xiàn)2024煙花效果的相關(guān)資料,文中介紹的是JavaScript代碼定義了煙花碎片和火箭類,通過動(dòng)畫循環(huán)模擬煙花爆炸效果,需要的朋友可以參考下
    2024-11-11
  • 基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼

    基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼

    這篇文章主要介紹了基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • 使用p5.js臨摹動(dòng)態(tài)圖形

    使用p5.js臨摹動(dòng)態(tài)圖形

    這篇文章主要為大家詳細(xì)介紹了如何使用p5.js臨摹動(dòng)態(tài)圖形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • js實(shí)現(xiàn)帶圓角的兩級導(dǎo)航菜單效果代碼

    js實(shí)現(xiàn)帶圓角的兩級導(dǎo)航菜單效果代碼

    這篇文章主要介紹了js實(shí)現(xiàn)帶圓角的兩級導(dǎo)航菜單效果代碼,涉及javascript鼠標(biāo)事件及頁面元素樣式動(dòng)態(tài)變換技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-08-08
  • 幾個(gè)有趣的Javascript Hack

    幾個(gè)有趣的Javascript Hack

    在網(wǎng)上看到幾個(gè)有意思的Javascript代碼,和大家分享一下。直接將代碼拷貝到IE中即可,注意代碼為一樣。不可分行
    2010-07-07
  • JS測試顯示屏分辨率以及屏幕尺寸的方法

    JS測試顯示屏分辨率以及屏幕尺寸的方法

    如何用JS特效顯示自己的屏幕分辨率以及屏幕尺寸呢,你會(huì)嗎?如果不會(huì),那么下面有個(gè)不錯(cuò)的方法,大家可以參考下
    2013-11-11

最新評論

贵定县| 青岛市| 英吉沙县| 石狮市| 普陀区| 乌拉特后旗| 明光市| 方城县| 霞浦县| 武邑县| 江达县| 宜昌市| 延吉市| 灵丘县| 陇西县| 荆州市| 虎林市| 双柏县| 什邡市| 邳州市| 陆良县| 德化县| 吴旗县| 义乌市| 定边县| 龙游县| 兴宁市| 棋牌| 诸城市| 承德县| 秭归县| 都兰县| 嘉善县| 张家界市| 永和县| 平邑县| 泸定县| 瑞金市| 从化市| 乡城县| 凤冈县|