js中值引用和地址引用实例分析

JS中的值引用和地址引用指的是,在JS中,非基本类型数据(如对象、数组等)的赋值方式存在两种:值传递和引用传递。当使用值传递时,实际上是将变量的值(即数据内容)直接复制给接收变量;而当使用引用传递时,则是将变量的地址(指针)复制给接收变量,两者指向同一块内存空间,从而共享同一份数据。这里通过两个实例来详细讲解这两种传递方式的异同点。

实例1:值传递

假设有两个对象a和b,对象a包含一个属性name,如下所示:

const a = {name: 'Tom'}

当我们将对象a的值赋给变量b时,是将a中的数据内容直接复制一份(副本)给b,两个变量之间不再有任何联系:

const b = a;

这时,如果我们改变a对象的name属性:

a.name = 'Jerry';

那么b对象的name属性并没有发生改变:

console.log(b.name); // Tom

这个实例中,变量b并没有和变量a共享同一份数据,而是得到了a对象的值的一份副本,因此改变a并不会影响到b。

实例2:引用传递

假设我们定义了一个数组a:

const a = [1, 2, 3];

而我们将这个数组a赋值给另一个数组变量b:

const b = a;

这时候,变量a和b指向同一个数组对象,即它们引用了同一块内存空间,因此对于数组中的元素的修改,变量a和b都会受到影响。

例如我们修改了数组a中第一个元素的值:

a[0] = 100;

那么数组b中的第一个元素也会跟着修改:

console.log(b[0]); // 100

这也是JS中引用传递的特点之一:多个变量引用同一个对象,会共享同一块内存空间。

综上所述,JS中的值引用和地址引用实际上是指JS中赋值方式存在的两种传递机制:值传递和引用传递。其中,值传递是直接将变量的数据内容复制给接收变量,两者之间不会共享同一份数据;而引用传递则是将变量的地址复制给接收变量,两者指向同一块内存空间,因此共享同一份数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中值引用和地址引用实例分析 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • es+flask搜索小项目实现分页+高亮的示例代码

    下面我将详细讲解“es+flask搜索小项目实现分页+高亮的示例代码”完整攻略,包含两条示例说明。 示例一:使用Python Flask框架和Elasticsearch检索引擎实现搜索功能 步骤一:准备工作 安装Python Flask框架以及它的依赖包。 安装Elasticsearch检索引擎驱动程序的Python客户端库:elasticsearch-py…

    Flask 2023年5月16日
    00
  • Python实现Restful API的例子

    下面我将详细讲解“Python实现Restful API的例子”的完整攻略。这个攻略包含两条示例说明: 示例1:使用Flask框架实现Restful API 步骤1:安装Flask框架 在命令行使用以下命令安装Flask框架: pip install Flask 步骤2:创建Flask应用程序 创建一个Python文件,名为app.py,并在其中编写代码: …

    Flask 2023年5月16日
    00
  • flask 实现token机制的示例代码

    下面是 flask 实现 token 机制的示例代码攻略: 1.生成 token 的代码示例 import jwt from flask import Flask, jsonify app = Flask(__name__) app.secret_key = ‘your-secret-key’ @app.route(‘/token’) def generat…

    Flask 2023年5月15日
    00
  • python框架中flask知识点总结

    下面我将为您详细讲解“python框架中flask知识点总结”的完整攻略。 什么是Flask? Flask是一个基于Python的轻量级Web应用框架,由Armin Ronacher在2010年创建。Flask的核心是Werkzeug和Jinja2,Werkzeug负责提供Web应用的基本结构,Jinja2则负责模板渲染。 Flask的优点 Flask具有以…

    Flask 2023年5月15日
    00
  • Python的flask常用函数route()

    Python Flask的route()函数 @app.route(rule, options) 是flask框架中用于定义路由的装饰器,route()函数就是用来注册路由的。rule为路由匹配规则,options为路由附带属性,例如请求的方式限制、自定义的参数等。route()函数可以帮助我们将HTTP请求映射到一个具体的处理程序上。 下面是具体的示例: …

    Flask 2023年5月16日
    00
  • Python flask框架post接口调用示例

    下面是“Python Flask框架POST接口调用示例”的完整攻略: 1. 确保flask和requests已安装 在开始之前,需要确保flask和requests已安装。如果没有安装可以在命令行中使用以下命令进行安装: pip install flask pip install requests 2. 创建Flask应用程序 创建一个Python脚本ap…

    Flask 2023年5月15日
    00
  • Python Type Hints 学习之从入门到实践

    下面是详细讲解“Python Type Hints 学习之从入门到实践”的完整攻略: Python Type Hints 学习之从入门到实践 什么是 Python Type Hints Python 从 3.5 版本开始引入了 Type Hints 的概念,它是一种用于标注函数、变量、类等对象类型的注释。Python 并不会在运行时对其进行强制校验,但是可以…

    Flask 2023年5月16日
    00
  • Flask中sqlalchemy模块的实例用法

    接下来我为您详细介绍Flask中sqlalchemy模块的实例用法的完整攻略。 1. 安装和配置 首先需要安装Flask和sqlalchemy模块,可以使用pip命令来进行安装。 pip install Flask pip install sqlalchemy 安装完成后,首先需要在Flask应用程序中导入sqlalchemy模块: from flask_s…

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部