在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。

原始值

存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。

引用值

存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

为变量赋值时,ECMAScript 的解释程序必须判断该值是原始类型,还是引用类型

解释程序则需尝试判断该值是否为 ECMAScript 的原始类型之一,即 Undefined、Null、Boolean、Number 和 String 型。由于这些原始类型占据的空间是固定的,所以可将他们存储在较小的内存区域 - 栈中。这样存储便于迅速查寻变量的值。

在许多语言中,字符串都被看作引用类型,而非原始类型,因为字符串的长度是可变的。ECMAScript 打破了这一传统。

ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String

ECMAScript 提供了 typeof 运算符来判断一个值是否在某种类型的范围内。

可以用这种运算符判断一个值是否表示一种原始类型:如果它是原始类型,还可以判断它表示哪种原始类型。

转载于:https://www.cnblogs.com/xiaozhanga4/archive/2012/05/01/2477815.html

ECMAScript 基础--原始值和引用值相关推荐

  1. 012_原始值和引用值

    1. 在JavaScript中, 变量可以存在两种类型的值, 即原始值和引用值. 2. 原始值 2.1. 存储在栈(stack)中的简单数据段, 也就是说, 它们的值直接存储在变量访问的位置. 2.2 ...

  2. 【JS】原始值与引用值、执行上下文与作用域链、作用域链增强、变量声明、标识符查找

    1.原始值与引用值 EcmaScript变量可以包含两种不同类型的数据:原始值.引用值 原始值:最简单的数据 引用值:由多个值构成的对象 六种原始值: Undefined Null Boolean N ...

  3. 原始值和引用值类型及区别

    javascript中原始值和引用值类型及区别 首先原始值和引用值类型都是我们JS中的数据类型,为了充分利用存储空间,定义了不同的数据类型,而且我们JS是弱类型,动态语言,数据类型可变. 原始值(简单 ...

  4. JavaScript检测原始值、引用值、属性

    上周写过一篇读书笔记<编写可维护的JavaScript>之编程实践,其中 第8章 避免『空比较』是博主在工作中遇坑较多的雷区,所以特此把该章节重新整理分享,希望大家不再坑队友(>﹏& ...

  5. ECMAScript 基础--原始类型

    ECMAScript 有 5 种原始类型(primitive type),即 Undefined.Null.Boolean.Number 和 String. typeof 运算符 对变量或值调用 ty ...

  6. JS中的原始数据类型(基础数据类型)和 引用数据类型

    文章目录 一.js的数据类型划分方式为 原始数据类型(基础数据类型)和 引用数据类型 二.两种类型的区别 1.存储位置不同 2.传值方式不同 3.两种数据类型在实参和形参中的区别 一.js的数据类型划 ...

  7. 《JavaScript高级程序设计》阅读笔记(一):ECMAScript基础

    2.1 语法 区分大小写.变量弱类型.行尾分号可有可无.注释为双斜线.括号表明代码块 2.2 变量 变量用var声明,变量的命名规则:第一个字符必须是字母.下划线或美元符号:余下的字符可以是下划线.美 ...

  8. JavaScript的数据类型、null 和undefined、原始数据类型和引用数据类型等JavaScript基础知识总结

    一.JavaScript里有哪些数据类型,解释清楚null 和undefined,解释清楚原始数据类型和引用数据类型.比如讲一下1 和Number(1)的区别 数据类型: undefined,没有定义 ...

  9. js值的拷贝和值的引用_到达P值的底部:直观的解释

    js值的拷贝和值的引用 介绍 (Introduction) Welcome to this lesson on calculating p-values. 欢迎参加有关计算p值的课程. Before ...

  10. C++面试 左值、右值、左值引用、右值引用

    1.左值和右值 左值(left-values),缩写:lvalues  ,located value 可定位值,其含义是可以明确其存放地址的值,更确切说对其的使用是基于地址 右值(right-valu ...

最新文章

  1. 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
  2. 做技术的,年龄大了你慌吗?
  3. python csv库,Python 中导入csv数据的三种方法
  4. JavaScript正则表达式笔记
  5. 设计模式--原型(Prototype)模式
  6. keras的学习笔记
  7. LeetCode 1213. 三个有序数组的交集(哈希set)
  8. beast php,windows php-beast 安装
  9. 如何关闭子线程?征集析构函数与多线程的讨论!
  10. 为什么说苹果是唯一在乎你隐私的科技公司?
  11. 路西法第一季为什么会被打伤_海贼王:路飞新招式‘红岩枪’,这次把凯多打伤了,大妈震惊...
  12. 数据库——添加外键约束
  13. 虚拟人的手工前世和AI今生
  14. Nessus下载失败问题解决
  15. python找到长度最长的单词长度,python中的正则表达式:查找长度为n或更长的单词...
  16. 服务器上pdf文档无法删除,怎么对PDF文件进行编辑,PDF怎么删除空白页
  17. 数字图像处理成长之路17:linux下训练样本并识别车牌实验
  18. FillRect and GradientFill
  19. 服务器一直即将注销你的登录,Win10提醒即将注销你的登录怎么办?
  20. 已解决:前、后端打包部署至服务器后,背景图片不显示并且一些图标都变成了方块

热门文章

  1. java真实面试题(2)
  2. 第二次公共考试,判断错题集
  3. c++ DLL-DEF-LIB
  4. 安装github for windows问题解决
  5. 7.python的字符串处理常见方法——《深入python3》
  6. struts2整合spring3整合成功但是spring无法注入
  7. SQLSERVER 清除链接历史记录
  8. Laravel项目问题集锦
  9. (转)javascript 从数组中删除指定值(不是指定位置)的元素
  10. c#.net常用函数列表