前端基础:数据类型

76 阅读1分钟

本文主要为前端基础,希望和读者共同进步.

数据类型

1.原始类型和引用类型 原始类型的归类: 1.undefined 2.null 3.boolean 4.number 5.string 6.symbol 7.bigint 引用类型的归类: 1.object

2.引用类型和原始类型 存储: 1.原始类型的存储在栈中: 每当赋值时,会直接替换遍历对应栈中的存储值. 2.引用类型存储在堆中 每当赋值时,会把地址赋值给变量,使变量指向另一个地址.

   比较经典的例子:
        例1:
          let num1 = 5;
          let num2 = num1;
          num2 = 6;
          console.log(num1);//5
          console.log(num2);//6
          
        例2:
          let obj1 = new Object();
          let obj2 = obj1;
          obj1.name = 'Nicholas';
          console.log(obj1.name);//'Nicholas'
          console.log(obj2.name);//'Nicholas         
          

比较和传参

   比较:
        1.原始类型的比较
            会对比两个变量栈内存中的存储值
        2.引用类型的比较
            会对比两个变量堆内存中的地址
            
   函数参数传递:所有函数参数传递都是按值传递
        1.原始类型的函数参数传递:
            传递过去变量对应栈内存中的存储值
        2.引用类型的函数参数传递:
            传递过去变量对应堆内存中的地址值
            
    比较经典的例子:
        例1:
           function addTen(num){
               num += 10;
               return num;
           }
           
           let count = 20;
           let result = addTen(count);
           console.log(count);//20
           console.log(result);//30
           
           
        例2:
           function setName(obj){
                obj.name = 'Nicholas';
           }                
           
           let person = new Object();
           setName(person);
           console.log(person.name);//'Nicholas'
           
        例3:
            function setName(obj){
                obj.name = 'Nicholas';
                obj = new Object();
                obj.name = 'Grag';
            }
            
            let person = new Object();
            setName(person);
            console.log(person.name);//'Nicholas'
            

判断数据类型的方法

     确定数据类型的常用种方法:
           1.对于基础类型typeof
               语法:typeof 变量
               返回值:字符串类型的数值
           
           2.对于引用类型instanceof
               语法:变量 instanceof 构造函数
               返回值:布尔类型的truefalse
               
           3.使用constructor
               var b = [1,2,3];
               console.log(b,constructor === Array);//true
               
           4.Array.isArray()
              Array.isArray([1, 2, 3]);  // true
              Array.isArray({foo: 123}); // false