成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS 里的類型

calx / 2413人閱讀

摘要:中是確定的,是的引用后面,變成的引用,但中的是確定的,所以在中又加上了深拷貝方法方法一如果這樣寫,對象中的簡單類型是深拷貝,而復(fù)雜類型是簡單拷貝方法二循環(huán)引用垃圾回收如果一個對象沒有被引用,它就是垃圾,將被引用被賦值后,這個函數(shù)不是垃圾

JS 里的類型

number類型轉(zhuǎn)

`string`:`toString`、String()全局函數(shù)、加上空字符串
`boolean:Boolean()全局函數(shù)、一個`!`取反,兩個`!`取反在取反

string 類型轉(zhuǎn)

`number`:Number()全局函數(shù)、parseInt()、parseFloat()、`+`、`-0`
`boolean`:Boolean()全局函數(shù)、一個`!`取反,兩個`!`取反在取反

boolean類型轉(zhuǎn)

`number`:Number()全局函數(shù)、`+`、`-0`
`string`:`toString`、String()全局函數(shù)、加上空字符串

null類型轉(zhuǎn)

`number`:Number()全局函數(shù)、`+`、`-0`
`string`:String()全局函數(shù)、加上空字符串
`boolean:Boolean()全局函數(shù)、一個`!`取反,兩個`!`取反在取反

undefined類型轉(zhuǎn)

`string`:String()全局函數(shù)、加上空字符串
`boolean:Boolean()全局函數(shù)、一個`!`取反,兩個`!`取反在取反

object類型轉(zhuǎn)

`string`:`toSting`、String()全局函數(shù)、加上空字符串
`boolean:Boolean()全局函數(shù)、一個`!`取反,兩個`!`取反在取反
`null`:
`number`

falsy值:0、NaN、""、null、undefinedfalse
console.log()利用toString()方法
console.log((1).toString)

內(nèi)存

簡單類型的數(shù)據(jù)存儲在棧內(nèi)存中
復(fù)雜類型的數(shù)據(jù)存儲在堆內(nèi)存中,棧內(nèi)存中存儲堆內(nèi)存中的

淺拷貝和深拷貝

淺拷貝:只拷貝堆內(nèi)存中的地址,如果我們重新賦值,原值會改變;簡單類型拷貝都是深拷貝;
深拷貝:把棧內(nèi)存中的內(nèi)容重新拷貝了一份,堆內(nèi)存中存儲的地址也將變化;如果 b 拷貝 a,改變 b,a 不變是深拷貝;改變 b,a 也跟著變是淺拷貝。

var a = {n:1}
var b = a
a.x = a = {n:2}        //a.x 中 a 是確定的,是{n:1}的引用;后面 a = {n:2},a 變成{n:2}的引用,但 a.x 中的 a 是確定的,所以在{n:1}中又加上了{x:{n:2}}
console.log(a.x)    //undefined
console.log(b.x)    //{n:2}

深拷貝方法:
方法一:

var obj = {
    age:10,
    friend:{
        name:"xiaoming",
        age:12,
        hobby:{
            sport:"football",
            foot:"apple"
        }
    }
}
function copy(object){
    var newObj = {}
    for(var key in object){
        if(typeof object[key] === "string" || typeof object[key] === "number" || typeof object[key] === "boolean" || object[key] === undefined || object[key] === null){
            newObj[key] = obj[key]
        }else{
            newObj[key] = copy(key)
        }
    }
    return newObj
}

var obj2 = copy(obj)

如果這樣寫,對象中的簡單類型是深拷貝,而復(fù)雜類型是簡單拷貝

var obj = {
    age:10,
    friend:{
        name:"xiaoming",
        age:12,
        hobby:{
            sport:"football",
            foot:"apple"
        }
    }
}
function copy(object){
    var newObj = {}
    for(var key in object){
        newObj[key] = obj[key]
    }
    return newObj
}
var obj2 = copy(obj)

方法二:

var obj = {
    age:10,
    friend:{
        name:"xiaoming",
        age:12,
        hobby:{
            sport:"football",
            foot:"apple"
        }
    }
}
var obj2 = JSON.parse(JSON.stringify(obj))
循環(huán)引用
var a = {}
a.self = a
垃圾回收

如果一個對象沒有被引用,它就是垃圾,將被引用

var fn = function(){}    //fn 被賦值 null 后,這個函數(shù)不是垃圾
document.body.onclick = fn
fn = null

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96588.html

相關(guān)文章

  • JS 里的數(shù)據(jù)類型轉(zhuǎn)換

    摘要:的數(shù)據(jù)類型轉(zhuǎn)換一中的數(shù)據(jù)類型中的數(shù)據(jù)類型一共有六種,即,,,,,。數(shù)據(jù)類型指的是數(shù)字,包括整型和浮點數(shù)。如布爾類型只有和,用于條件判斷。數(shù)據(jù)類型的相互轉(zhuǎn)換任意數(shù)據(jù)類型轉(zhuǎn)字符串特殊用法任意數(shù)據(jù)類型轉(zhuǎn)數(shù)字任意數(shù)據(jù)類型轉(zhuǎn)布爾值五個值 JS的數(shù)據(jù)類型轉(zhuǎn)換 一、js中的數(shù)據(jù)類型Js中的數(shù)據(jù)類型一共有六種,即number,string,boolean,underfine,null,object。 ...

    RaoMeng 評論0 收藏0
  • JS里的數(shù)據(jù)類型

    摘要:有七種數(shù)據(jù)類型注意沒有類型也沒有類型。年,布爾冒著大雨步行兩英里走到講臺,身著打濕的衣服為學生們授課。其妻錯誤地相信疾病需要用致病因子施救,因為布爾是淋雨水而感冒的,妻子于是用桶子裝水淋到他身上。年,月日,布爾死于肺部積水。 JS有七種數(shù)據(jù)類型:number string boolean symbol undefined null object注意:沒有 array 類型也沒有 fun...

    MockingBird 評論0 收藏0
  • JS里的數(shù)據(jù)類型轉(zhuǎn)換

    摘要:一任意類型轉(zhuǎn)換為字符串要大寫這種方法可以將,,轉(zhuǎn)化為字符串,但是無法轉(zhuǎn)換,這兩種數(shù)據(jù)類型要大寫是一個全局函數(shù),功能更強大可以轉(zhuǎn)換基本上所有類型為字符串這是最簡單最便捷的一種方法,把加上一個空字符串就可以快速將其他類型轉(zhuǎn)換成字符串二任意類型轉(zhuǎn) 一、任意類型轉(zhuǎn)換為字符串 1、x.toString(S要大寫) 這種方法可以將number,boolean,object轉(zhuǎn)化為字符串,但是無法轉(zhuǎn)換...

    CloudDeveloper 評論0 收藏0
  • 一篇文章徹底說清JS的深拷貝/淺拷貝

    摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業(yè)務(wù)需要急需知道如何深拷貝對象的開發(fā)者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現(xiàn)思路以及小伙伴們?nèi)绻褂昧诉@種黑科技一定要清楚這樣寫的優(yōu)缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業(yè)務(wù)需要,急需知道如何深拷貝JS對象的開發(fā)者。 第二類,希望扎實JS基礎(chǔ),將來好去面試官前秀操作...

    J4ck_Chan 評論0 收藏0
  • 一篇文章徹底說清JS的深拷貝/淺拷貝

    摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業(yè)務(wù)需要急需知道如何深拷貝對象的開發(fā)者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現(xiàn)思路以及小伙伴們?nèi)绻褂昧诉@種黑科技一定要清楚這樣寫的優(yōu)缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業(yè)務(wù)需要,急需知道如何深拷貝JS對象的開發(fā)者。 第二類,希望扎實JS基礎(chǔ),將來好去面試官前秀操作...

    lakeside 評論0 收藏0

發(fā)表評論

0條評論

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