js基础 ------ 基本类型和引用类型

时间:2021-04-19 15:45:44

    js 种有两种变量类型:基本类型和引用类型。可能会让你联想到“”堆栈“”或者“”指针“”的概念。

一、基本类型

   包括:number、string、boolean、null、undefined
       
  1、基本类型理解:等于又开了一家一模一样的店,之后店内的所有东西和之前的没啥关系;
              function stores() {
                   var store1 = 'KFC';
                   var store2 = store1;
                    store1 = 'M';
                   console.log(store2); // KFC
               };
        说明: 把一个基本类型传递给另一个变量时,其实是分配了一块新的内存空间,因此之前的值改变不会影响另一个变量有影响;
 
  2、不能给基本类型添加属性和方法,例如:
            var store = 'KFC';
                store.time = '20100212';
                store.method = function(){//...}
                console.log(store.time ) // undefined
                console.log(store.method) //undefined
 
  3、基本类型的比较是值的比较,只有值相等的时候才相等;
               var a = 'KFC';
               var b = 'KFC';
               console.log(a === b); //true
 

二、引用类型

        除了上面的几种基本类型外就是引用类型了,如:对象、数组、函数。
 
  1、引用类型理解:同一个店铺有多把钥匙,只要一个人进入了店铺改了里面的东西,另一个人再进去看到的也是改变之后的了。
          function stores() {
                 var store1 = ['KFC'];
                 var store2 = store1;
                 console.log(store2[0]); //KFC
                 store1[0] = 'M';
                 console.log(store2[0]); //M
          }
  因为引用类型指向的是同一个地址,所有一个改变后另一个也会改变。
 
  2、引用类型的比较是引用的比较
          var person1 = {};
          var person2 = {};
          console.log(person1 == person2); // false
  说明:引用类型时按引用访问的,换句话说就是比较两个对象的堆内存中的地址是否相同,那很明显,person1和person2在堆内存中地址是不同的