var、let、const

var let const
作用域范圍 函數
否覆蓋聲明 true err err
變量提升 true false false
再次賦值 true true err

javascript對象是引用傳遞,基本類型是按值傳遞

ps:javascript里沒有引用傳遞其實是傳遞引用?

function changeStuff(a, b, c)
{
    a = a * 10;
    b.item = "changed";
    c = {item: "changed"};
}

var num = 10;
var obj1 = {item: "unchanged"};
var obj2 = {item: "unchanged"};

changeStuff(num, obj1, obj2);

console.log(num);
console.log(obj1.item);
console.log(obj2.item);
console.log([1] === [1])//false
console.log([1] == [1])//false
  • json 對象的拷貝函數
function copy(o) {
    if (Object.prototype.toString.call(o) === '[object Array]') {

        return o.map(item=>copy(item));

    } else if (Object.prototype.toString.call(o) === '[object Object]') {

        return Object.keys(o).reduce((result, key)=> {
            result[key] = copy(o[key]);
            return result;
        }, {})

    }
    else {
        return o;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容