美文网首页
第 4 章 变量、作用域与内存(4.1 原始值与引用值、4.1.

第 4 章 变量、作用域与内存(4.1 原始值与引用值、4.1.

作者: Wuthier | 来源:发表于2021-05-28 13:48 被阅读0次

第 4 章 变量、作用域与内存

正如 ECMA-262 所规定的,JavaScript 变量是松散类型的,而且变量不过就是特定时间点一个特定值的名称而已。

4.1 原始值与引用值

ECMAScript 变量可以包含两种不同类型的数据:原始值和引用值。原始值就是最简单的数据,引用值则是有多个值构成的对象。

保存原始值的变量是按值访问的,因为我们操作的就是存储在变量中的实际值。

引用值是保存在内存中的对象。与其他语言不同,JavaScript 不允许直接访问内存位置,因此也就不能直接操作对象所在的内存空间。在操作对象时,实际上操作的是对该对象的引用而非实际的对象本身。为此,保存引用值的变量是按引用访问的。

4.1.1 动态属性

原始值和引用值的定义方式很类似,都是创建一个变量,然后给它赋一个值。

  • 引用值:可以随时添加、修改和删除其属性和方法。
  • 原始值:不能有属性,尽管尝试给原始值添加属性不会报错。

注意,原始类型的初始化可以只使用原始字面形式。如果使用的是 new 关键字,则 JavaScript 会创建一个 Object 类型的实例,但其行为类似原始值。

let name1 = "Nicholas";
let name2 = new String("Matt");
name1.age = 27;
name2.age = 26;
console.log(name1.age); // undefined
console.log(name2.age); // 26
console.log(typeof name1); // string
console.log(typeof name2); // object

相关文章

  • 第 4 章 变量、作用域与内存(4.1 原始值与引用值、4.1.

    第 4 章 变量、作用域与内存 正如 ECMA-262 所规定的,JavaScript 变量是松散类型的,而且变量...

  • js 不修改原数组,返回新的数组

    根据javascript高程第四章 变量、作用域和内存问题 4.1 基本类型和引用类型的值 1)基本类型值指的是简...

  • js高级程序设计第四章(部分整理)

    变量、作用域、内存问题 4.1 基本类型和引用类型的值 基本类型: undefined, null, boolea...

  • 如何实现数组深拷贝和浅拷贝?

    1.背景介绍 什么是栈内存和堆内存? JavaScript中的变量的存放有有原始值与引用值之分,原始值代表了原始的...

  • 浅谈js数组深拷贝和浅拷贝

    1.背景介绍 什么是栈内存和堆内存? JavaScript中的变量的存放有有原始值与引用值之分,原始值代表了原始的...

  • JavaScript高级程序设计(第3版) 笔记

    第四章 变量、作用域和内存问题 4.1 基本类型和引用类型 5种基本类型是按值访问的,因为可以操作保存在变量里的实...

  • js小结1

    变量作用域以及内存问题(垃圾回收) JavaScript 变量可以用来保存两种类型的值:基本类型值和引用类型值。 ...

  • js基础知识(二)

    第四章 变量、作用域和内存问题 基本类型和引用类型的值 ECMAScript 变量可能包含两种不同数据类型的值:基...

  • ECMA知识点

    变量、作用域和内存问题 变量基本类型值和引用类型值 执行环境和作用域当代码在一个环境中执行时,会创建变量对象的一个...

  • PHP-自定义函数和内部函数

    变量作用域与静态变量 函数的参数及函数的引用传递函数的返回值及引用返回外部文件的导入系统内置函数 变量的作用域也成...

网友评论

      本文标题:第 4 章 变量、作用域与内存(4.1 原始值与引用值、4.1.

      本文链接:https://www.haomeiwen.com/subject/wjdssltx.html