变量、作用域和内存问题

JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值。基本类型的值源自以下5种基本数据类型
Undefined、Null、Boolean、Number、String

基本类型值和引用类型值具有以下特点:

  1. 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中;
  2. 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本; 引用类型的值是对象,保存在堆内存中;
  3. 包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针;
  4. 从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象;
  5. 确定一个值是哪种基本类型可以使用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作符。
  6. 所有变量(包括基本类型和引用类型)都存在于一个执行环境(也称为作用域)当中,这个执行环境决定了变量的生命周期,以及哪一部分代码可以访问其中的变量。
    原文作者:gecko23
    原文地址: https://segmentfault.com/a/1190000000724769
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞