面试题两个

第一题将查询字符串转成k-v的形式

 let s="ct=24&qqmusic_ver=1298&new_json=1"
      let params={
    
    };
      s.split("&").map(function(ele,index){
    
    
        let arr=ele.split("=");
        console.log("arr",arr)
        params[arr[0]]=arr[1]
      })
      console.log(params,"params")

2 基本数据类型和复杂数据类型在复制时的区别

如果从一个变量向另外一个变量复制复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。这两个值是完全独立的,不会相互影响

 	  var num1=5;
      var num2=num1;
      console.log("num1",num1+1);//6
      console.log("num2",num2); //5

如果用图来解释的话就像下面这样
在这里插入图片描述
当一个变量向另一个变量复制引用类型的值时,同样也会将存储到的值复制一份放到新变量分配的空间中。不同的是,这个值的副本实际上是一个指针, 而这个指针指向存储在堆中的一个对象。复制结束后,两个变量实际上引用的是同一个变量,因些,其中一个改变,也会影响另外一个

	  var obj1=new Object();
      var obj2=obj1;
      obj1.name="foo";
      console.log("obj2.name",obj2.name);// foo

配上图如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45989814/article/details/116406251