成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JS中的一些坑(持續(xù)更新)

Lin_YT / 3426人閱讀

摘要:問題高級程序設(shè)計第版第頁部分寫到首先,任何涉及的操作例如,都會返回。這一點(diǎn)寫錯了,加性操作符就是個特例加性操作符中如果有一個操作數(shù)是字符串,即便有一個,也會將其轉(zhuǎn)為字符串進(jìn)行拼接。而對于減性操作符,書中所寫是對的

1. 基本類型與引用類型

??途W(wǎng)上的一個題:

var arr=[{a:1},{}];
arr.forEach(function(item,idx){
    item.b=idx;
});

執(zhí)行完上面代碼后,arr 的值是?

覺得 forEach 方法中的 item 參數(shù)是按值傳遞,所以不會改變原來的 arr,答案為:[{a:1},{}] 。正確答案是:[{a:1, b:0},{b:1}] 。這里忽略了一個重要的點(diǎn),即函數(shù)參數(shù)雖然是按值傳遞,不是按引用傳遞,但是基本類型和引用類型本身的差別被忽略了。

基本類型占用的內(nèi)存空間不大,所以把變量 a 賦給 b,是把 a 的值拷貝一份給b,a、b 所在的內(nèi)存空間是獨(dú)立的,所以修改 a 不會影響 b:

var a = 1;
var b = a;
a = 2;
a; // 2
b; // 1

但是引用類型就不一樣了,因?yàn)橐妙愋痛鎯Φ膬?nèi)容可能很多,比如將對象 a 賦值給對象 b,如果是簡單拷貝一遍內(nèi)容,可能會帶來很大的內(nèi)存開銷,所以這種情況,對象a 和 b 實(shí)際上指向同一個內(nèi)存空間,賦值操作實(shí)際上是將 a 的內(nèi)存地址復(fù)制一份給 b,所以 a 對象的屬性改變也會影響到 b 對象:

var obja = {
  a: 1,
  b: 2
}
var objb = obja
obja.a = 2;
obja; // {a:2, b:2}
objb; // {a:2, b:2}

那么就很好理解啦,forEach 中的參數(shù) item 如果是一個引用類型,就要警惕啦,雖然是按值傳遞,但是傳遞的值是內(nèi)存地址。

2. NaN問題

<>第29頁NaN部分寫到:

首先,任何涉及NaN的操作(例如 NaN/10),都會返回NaN。

這一點(diǎn)寫錯了,加性操作符就是個特例:

console.log(NaN + "A"); // "NaNA"
console.log(NaN + NaN); // NaN
console.log(NaN + 1); // NaN

加性操作符中如果有一個操作數(shù)是字符串,即便有一個NaN,也會將其轉(zhuǎn)為字符串進(jìn)行拼接。

而對于減性操作符,書中所寫是對的:

console.log(NaN - "A"); // NaN
console.log(NaN - NaN); // NaN
console.log(NaN - 1); // NaN

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/95941.html

相關(guān)文章

  • vue入筆記(持續(xù)更新

    摘要:如果我們能把不同路由對應(yīng)的組件分割成不同的代碼塊,只在路由被訪問的時候才加載對應(yīng)的組件,這樣就更加高效了。這樣會大大提高首屏顯示的速度,但是可能其他的頁面的速度就會降下來。 一、 代碼分割,讓頁面按需加載,加快首屏速率 vue.js構(gòu)建單頁應(yīng)用雖然能通過路由來實(shí)現(xiàn)多頁面效果,但是實(shí)際上打包后所有的代碼都只有一個入口文件app.bundle.js,當(dāng)項(xiàng)目變得十分龐大的時候,app.bun...

    tanglijun 評論0 收藏0
  • 微信網(wǎng)頁開發(fā)調(diào)用微信jssdk接口遇到的以及最終解決方法 (持續(xù)更新

    摘要:在系統(tǒng)的手機(jī)中,其實(shí)微信點(diǎn)擊網(wǎng)頁的圖片會自動調(diào)用這個接口一次。然后在在下面進(jìn)行微信的接口的調(diào)用判斷是還是終端終端更新這個好像微信自己修復(fù)了,現(xiàn)在無論還是,如果不調(diào)用這個方法,微信自己不會去調(diào)用了。 1.微信網(wǎng)頁開發(fā)調(diào)用jssdk時報permission denied 大致是兩個原因 (1)首先注冊時未將你所調(diào)用的接口名字添加至jsApiList (2)第二個就是你的這個公眾號沒有權(quán)限使...

    Little_XM 評論0 收藏0
  • web app遇到的一些及小技能(持續(xù)更新...)

    摘要:遇到的一些坑問題手機(jī)端事件會有大約的延遲原因手機(jī)端事件,因?yàn)樵谑录|發(fā)之后,瀏覽器要判斷用戶是否會做出雙擊屏幕的操作,所以會等待來判斷,再做出是否觸發(fā)事件的處理,所以就會有的延遲解決方法使用事件來代替事件,如的事件和,還有我自己 遇到的一些坑 問題:手機(jī)端 click 事件會有大約 300ms 的延遲 原因:手機(jī)端事件 touchstart --> touchmove --...

    darry 評論0 收藏0
  • web app遇到的一些及小技能(持續(xù)更新...)

    摘要:遇到的一些坑問題手機(jī)端事件會有大約的延遲原因手機(jī)端事件,因?yàn)樵谑录|發(fā)之后,瀏覽器要判斷用戶是否會做出雙擊屏幕的操作,所以會等待來判斷,再做出是否觸發(fā)事件的處理,所以就會有的延遲解決方法使用事件來代替事件,如的事件和,還有我自己 遇到的一些坑 問題:手機(jī)端 click 事件會有大約 300ms 的延遲 原因:手機(jī)端事件 touchstart --> touchmove --...

    zhiwei 評論0 收藏0

發(fā)表評論

0條評論

Lin_YT

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<