国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS中只有按值傳遞

sunsmell / 1926人閱讀

摘要:之前看高級(jí)程序設(shè)計(jì)時(shí)就遇到過(guò)一個(gè)問(wèn)題,就是函數(shù)傳參的問(wèn)題,書上說(shuō)是按值傳遞,而非按引用傳遞。我個(gè)人理解就是,中全部是按值傳遞。

之前看《javascript高級(jí)程序設(shè)計(jì)》時(shí)就遇到過(guò)一個(gè)問(wèn)題,就是函數(shù)傳參的問(wèn)題,書上說(shuō)是按值傳遞,而非按引用傳遞。很多人都會(huì)認(rèn)為js里面有兩種傳值方式,一種是復(fù)制,另一種是數(shù)組、對(duì)象等按引用傳遞,后來(lái)看到知乎上面一道題后才發(fā)現(xiàn)不是那么簡(jiǎn)單。我個(gè)人理解就是,js中全部是按值傳遞。

這個(gè)是高級(jí)程序設(shè)計(jì)里面的例子:

也許很多人會(huì)迷惑,person.name不該是Greg嗎?為什么輸出Nicholas?

因?yàn)閟etName函數(shù)里面其實(shí)相當(dāng)于把person對(duì)象的地址復(fù)制了一份,然后賦值給了obj,但是obj=new Object()這句將另外一個(gè)地址賦值給了obj,所以下面obj不管怎么修改都不會(huì)影響person。

這里還有另外一個(gè)例子:
var a=[1,2,3];
var b=a;
a=[1,2,3,4];
console.log(b);  //1,2,3

按照正常的想法,a和b是引用的同一個(gè)數(shù)組對(duì)象,當(dāng)a改變的時(shí)候,b也會(huì)改變,可是這里面b卻沒有改變,難道這個(gè)是單純的復(fù)制a的值給b?

這個(gè)和上面的例子差不多,也是把a(bǔ)指向?qū)ο蟮牡刂窂?fù)制給了b,然后a=[4,5,6]相當(dāng)于a指向了另外一個(gè)數(shù)組,所以b還指向原來(lái)的數(shù)組,并不會(huì)發(fā)生變化。

這里還有一個(gè)例子:
var a=[1,2,3];
var b=a;
a.push(4);
console.log(b); //[1,2,3,4]

這里面因?yàn)閍改變的還是原來(lái)數(shù)組,所以b也會(huì)跟著變化。

最后奉上一道自己筆試做錯(cuò)的題。
var test1=new Boolean("false");
console.log(test1);  //true

注意:如果邏輯對(duì)象無(wú)初始值或者其值為 0、-0、null、""、false、undefined 或者 NaN,那么對(duì)象的值為 false。否則,其值為 true(即使當(dāng)自變量為字符串 "false" 時(shí))!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/50049.html

相關(guān)文章

  • JavaScript之按值傳遞

    摘要:中所有函數(shù)的參數(shù)都是按值傳遞的。基本類型本身是按值傳遞,具有不可變性,對(duì)基本類型的修改,實(shí)質(zhì)上都是在棧內(nèi)存中創(chuàng)建了新的值。中把這種拷貝也認(rèn)為是按值傳遞。 本文共 1200 字,讀完只需 5 分鐘 概述 參數(shù)的傳遞分為按值傳遞和按引用傳遞,而 JavaScript 中參數(shù)的傳遞只有按值傳遞。 ECMAScript 中所有函數(shù)的參數(shù)都是按值傳遞的。 所謂按值傳遞就是: 把函數(shù)外部的值復(fù)制給...

    xiangchaobin 評(píng)論0 收藏0
  • JS只有按值傳遞

    摘要:之前看高級(jí)程序設(shè)計(jì)時(shí)就遇到過(guò)一個(gè)問(wèn)題,就是函數(shù)傳參的問(wèn)題,書上說(shuō)是按值傳遞,而非按引用傳遞。我個(gè)人理解就是,中全部是按值傳遞。 之前看《javascript高級(jí)程序設(shè)計(jì)》時(shí)就遇到過(guò)一個(gè)問(wèn)題,就是函數(shù)傳參的問(wèn)題,書上說(shuō)是按值傳遞,而非按引用傳遞。很多人都會(huì)認(rèn)為js里面有兩種傳值方式,一種是復(fù)制,另一種是數(shù)組、對(duì)象等按引用傳遞,后來(lái)看到知乎上面一道題后才發(fā)現(xiàn)不是那么簡(jiǎn)單。我個(gè)人理解就是,j...

    Coly 評(píng)論0 收藏0
  • JS只有按值傳遞

    摘要:之前看高級(jí)程序設(shè)計(jì)時(shí)就遇到過(guò)一個(gè)問(wèn)題,就是函數(shù)傳參的問(wèn)題,書上說(shuō)是按值傳遞,而非按引用傳遞。我個(gè)人理解就是,中全部是按值傳遞。 之前看《javascript高級(jí)程序設(shè)計(jì)》時(shí)就遇到過(guò)一個(gè)問(wèn)題,就是函數(shù)傳參的問(wèn)題,書上說(shuō)是按值傳遞,而非按引用傳遞。很多人都會(huì)認(rèn)為js里面有兩種傳值方式,一種是復(fù)制,另一種是數(shù)組、對(duì)象等按引用傳遞,后來(lái)看到知乎上面一道題后才發(fā)現(xiàn)不是那么簡(jiǎn)單。我個(gè)人理解就是,j...

    tinysun1234 評(píng)論0 收藏0
  • JS的值是按值傳遞,還是按引用傳遞呢?

    摘要:按引用傳遞時(shí),函數(shù)的形參接收實(shí)參的隱式引用,而不再是副本。探究值的傳遞方式的基本類型,是按值傳遞的。但這樣是否說(shuō)明的對(duì)象是按引用傳遞的呢我們?cè)倏聪旅娴睦尤匀皇遣⑽幢恍薷臑槿绻前匆脗鬟f,修改形參的值,應(yīng)該影響到實(shí)參才對(duì)。 最近遇到個(gè)有趣的問(wèn)題:JS中的值是按值傳遞,還是按引用傳遞呢? 在分析這個(gè)問(wèn)題之前,我們需了解什么是按值傳遞(call by value),什么是按引用傳遞(ca...

    Jochen 評(píng)論0 收藏0
  • JavaScript參數(shù)傳遞方式

    這幾天遇到j(luò)s參數(shù)傳遞方式的問(wèn)題,深切探究一番,將所得結(jié)果總結(jié)于此 常見的幾種傳遞方式 傳值調(diào)用(call by value) 在傳值調(diào)用中實(shí)際參數(shù)被求值,其值被綁定到函數(shù)中對(duì)應(yīng)的變量上(通常是把值復(fù)制到新內(nèi)存區(qū)域)。在函數(shù)返回后調(diào)用者作用域里的曾傳給函數(shù)的任何東西都不會(huì)變。 傳引用調(diào)用(call by reference) 在傳引用調(diào)用求值中,傳遞給函數(shù)的是它的實(shí)際參數(shù)的隱式引用(即實(shí)際參數(shù)的地...

    jcc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<