zoukankan      html  css  js  c++  java
  • js-js系列-数据类型-概念

    1. JS原始数据类型有哪些?引用数据类型有哪些?

      1. 1. 在 JS 中,存在着 6 种原始值,分别是:
           - boolean
           - null
           - undefined
           - number
           - string
           - symbol
        2. 引用数据类型: 对象Object(包含普通对象-Object,数组对象-Array,正则对象-RegExp,日期对象-Date,数学函数-Math,函数对象-Function)
        
    2. 传值赋值和传值赋值

      1. 1. 传值赋值:局部变量所在的栈内存会为该变量开辟一块新的内存空间,通过传来的值为内存进行初始化
        
        2. 传址赋值:通常局部变量为引用变量,(数组引用变量/类引用变量),不会在方法栈内开辟对象的内存,只会在方法栈内开辟引用变量的内存空间,直接操作的是引用变量的地址值所指向的对象
        
        3. 传值赋值不可以改变原变量的内容和地址
        
        4. 传址赋值不可以改变原变量的地址,但可以改变原变量的内容
        
        5. 根本原因:内存
        
        6. 值传递会在方法中开辟局部变量的内存,利用值传递为新开辟的局部变量初始化,局部变量有自己的地址
        
           原变量只是将值传过去了
        
        7. 引用传递不会在方法中开辟对象的内存,只是会给局部的引用变量开辟内存空间,将地址值传递给局部引用变量,但是实际的指向是堆内存
        
    3. 出下面运行的结果,解释原因。

      1. function test(person) {
          person.age = 26
          person = {
            name: 'hzj',
            age: 18
          }
          return person
        }
        const p1 = {
          name: 'fyq',
          age: 19
        }
        const p2 = test(p1)
        console.log(p1) // -> ?
        console.log(p2) // -> ?
        
      2. p1:{name: “fyq”, age: 26}
        p2:{name: “hzj”, age: 18}
        
      3. 原因: 在函数传参的时候传递的是对象在堆中的内存地址值,test函数中的实参person是p1对象的内存地址,通过调用person.age = 26确实改变了p1的值,但随后person变成了另一块内存空间的地址,并且在最后将这另外一份内存空间的地址返回,赋给了p2。
        
    4. null是对象吗?为什么?

      结论: null不是对象。

      解释: 虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象然而 null 表示为全零,所以将它错误的判断为 object 。

      
      
    5. toString

    6. valueOf

      1. https://www.cnblogs.com/xiaohuochai/p/5560276.html
      2. https://blog.csdn.net/celi_echo/article/details/100038366
  • 相关阅读:
    李时珍的皮肤衣【快速幂】
    ClickHouse深度解析
    Hadoop&HDFS知识点整理
    实时日志数据写入Clickhouse
    Kafka consumer Job异常重置offset
    Flink WaterMark原理与实现
    Spark定期合并Hive表小文件
    Flink 1.11 Table & SQL深度解读
    Docker 安装Elasticsearch、Kibana实战——避免踩坑
    Flink 异步IO实践
  • 原文地址:https://www.cnblogs.com/ycyc123/p/14823930.html
Copyright © 2011-2022 走看看