zoukankan      html  css  js  c++  java
  • javascript基础类型和引用类型

    基本类型(栈数据)

      String  Number  Boolean  null  undefined   symbol(ES6)

    引用类型(堆数据)

      Array   Object   Function   Date   RegExp 等

    区分 栈小堆大

    1.基础类型是放置在栈里面,一般基础类型的数据都比较小,赋值不影响自身

    var a = 1;
    var b = a;
    a = 2;
    console.log(b);  // 1

    2.引用类型是放置在堆里面,一般引用类型的数据都比较大,而栈空间又比较小,所有引用类型都是放置在堆里面,而放置在栈空间的是引用类型的地址引用,互相赋值会影响双方

    var obj1 = {
        name: 'lyj'
    };
    var obj2 = obj1;
    obj1.name = 'cjy';
    console.log(obj2);  // {name: 'cjy'}

    3.如果引用类型想赋值却有不想互相影响,可以通过浅克隆方式,如下

    1.ES6结构
    var obj1 = {name: 'lyj'}
    var obj2 = {...obj1}
    
    2.JSON大法
    var obj1 = {name: 'lyj'}
    var obj2 = JSON.parse(JSON.stringify(obj1))
    
    3.函数封装clone
    function clone(origin, target) {
         var target = target || {}
         for(var prop in origin) {
             target[prop] = origin[prop]
         }
         return target
    }
    var obj1 = {name: 'lyj', sex: 'boy'}  
    var obj2 = clone(obj1)

    end!!!

  • 相关阅读:
    SCRUM团队
    SCRUM的四大支柱
    SCRUM的五个价值观
    SCRUM的五个事件
    SCRUM的三个工件
    SCRUM团队的三个角色
    经验性过程
    Windows UWP开发系列 – RelativePanel
    Windows UWP开发系列 – 控件默认样式
    Windows UWP开发系列 – 3D变换
  • 原文地址:https://www.cnblogs.com/lyjfight/p/12929572.html
Copyright © 2011-2022 走看看