JavaScript基本数据类型及值类型和引用类型

当我们编写JavaScript代码时,我们需要了解JavaScript的基本数据类型及值类型和引用类型。

JavaScript基本数据类型

JavaScript基本数据类型包括数字、字符串、布尔值、null、undefined和Symbol(ES6中新增)。它们是不可改变的,也就是说,一旦创建,我们无法对它们进行修改。

数字

JavaScript中的数字可以是整数或者小数。例如,2和2.5都是数字。我们可以使用算术运算符如加减乘除来对数字进行操作。

示例:

let a = 2;
let b = 2.5;
let sum = a + b;
console.log(sum);   // 输出4.5

字符串

JavaScript中的字符串是用单引号或双引号括起来的一串字符。例如,“hello world”就是一个字符串。我们可以使用加号将字符串连接起来。

示例:

let str1 = "hello";
let str2 = "world";
let str = str1 + " " + str2;
console.log(str);   // 输出 hello world

布尔值

JavaScript中的布尔值只有两个取值:true和false。它们用于表示逻辑上的真和假。我们可以使用逻辑运算符如&&、||和!来进行逻辑操作。

示例:

let x = 2;
let y = 3;
let z = (x < y);
console.log(z);   // 输出 true

null和undefined

null表示一个空值,表示变量没有值。undefined表示一个未定义的值,表示变量未经初始化。它们通常用于表示在程序中没有找到所需的值。

示例:

let a = null;
let b;
console.log(a);   // 输出 null
console.log(b);   // 输出 undefined

Symbol

Symbol是ES6中新增的数据类型,它是一种唯一的、不可变的值,通常用于对象属性的标识符。

示例:

let s = Symbol("foo");
console.log(s);   // 输出 Symbol(foo)

值类型和引用类型

除了基本数据类型,JavaScript还有引用类型。引用类型是存储在堆内存中的对象,而基本数据类型则是存储在栈内存中的简单数据值。基本数据类型的值是按值访问的,而引用类型的值是按引用访问的。

值类型

值类型包括数字、字符串、布尔值、null和undefined。当我们创建一个值类型的变量时,系统就会在栈内存中为它分配一个固定大小的空间。

示例:

let a = 2;
let b = a;
a = 3;
console.log(a);   // 输出 3
console.log(b);   // 输出 2

上述代码中,a和b都是基本数据类型的变量。在将a的值赋给b后,a和b拥有了各自的独立空间,因此变量a的修改不会影响到变量b。

引用类型

引用类型包括对象、数组和函数。当我们创建一个引用类型的变量时,系统会先在栈内存中为它分配一个空间,然后在堆内存中为对象分配一个存储空间。变量实际上只包含一个指向堆内存中对象的指针。

示例:

let obj1 = {name: "Jack"};
let obj2 = obj1;
obj1.name = "Rose";
console.log(obj1.name);   // 输出 Rose
console.log(obj2.name);   // 输出 Rose

上述代码中,obj1和obj2都是引用类型的变量,它们实际上只是指向同一个对象。因此,当我们修改obj1的属性时,obj2也会受到影响。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript基本数据类型及值类型和引用类型 - Python技术站

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

相关文章

  • C# 遍历文件夹子目录下所有图片及遍历文件夹下的文件

    C# 中遍历文件夹和子目录很常见,本文就详细讲解如何使用 C# 遍历文件夹中的文件以及子目录中的文件,同时只选择图片文件。 遍历文件夹中的所有图片文件 方法一:使用 Directory.GetFiles Directory.GetFiles() 方法返回指定路径下的所有文件,可以通过 fileName.Contains(“.jpg”) 和 fileName.…

    C# 2023年6月1日
    00
  • asp.net(c#)实现从sqlserver存取二进制图片的代码

    实现从SQL Server存取二进制图片需要经历以下步骤: 在SQL Server中创建表来存储图片数据。通常,您需要为每个图像分配两个列:一个用于存储二进制数据,另一个用于存储图像的MIME类型。例如: CREATE TABLE [dbo].[ImageTable]( [ID] INT PRIMARY KEY IDENTITY(1,1), [ImageDa…

    C# 2023年5月31日
    00
  • .Net Core 配置文件读取IOptions,IOptionsMonitor,IOptionsSnapshot

    当我们在 .NET Core 应用程序中需要读取配置文件时,可以使用 IOptions、IOptionsMonitor 和 IOptionsSnapshot 接口。这些接口提供了不同的方式来读取配置文件,并且可以根据需要自动更新配置值。 以下是详细的攻略: 步骤1:创建配置文件 在项目中创建一个名为 appsettings.json 的配置文件,并添加以下内…

    C# 2023年5月12日
    00
  • .net实现动态验证码功能

    下面是“.net实现动态验证码功能”的完整攻略: 1. 概述 动态验证码功能可以有效防止自动化脚本恶意攻击网站。一般而言,动态验证码通过生成一组数字或字母等随机字符,将其显示在网站页面上,并要求用户输入该组字符,以验证用户的真实性。 在.NET平台上,我们可以使用C#等开发语言实现动态验证码功能。具体而言,需要实现以下工作: 生成一组随机字符; 将这组字符显…

    C# 2023年5月31日
    00
  • C#中标准的IDispose模式代码详解

    C#中标准的IDispose模式代码详解 什么是IDispose模式 IDispose模式是一个资源管理模式,其目的是让开发者预先为对象的清理操作做好准备,从而保证应用程序的高效和正确性。IDispose模式的核心接口是IDisposable,其定义在System命名空间中。 IDispose模式的基本用法 IDispose模式的基本用法是通过实现IDisp…

    C# 2023年6月2日
    00
  • abp(net core)+easyui+efcore实现仓储管理系统——供应商管理升级之上(六十三)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三)…

    C# 2023年5月8日
    00
  • C#实现简单的RSA非对称加密算法示例

    下面是关于C#实现简单的RSA非对称加密算法的攻略: 什么是RSA加密算法? RSA加密算法采用了一种被称为”公钥加密算法”的加密方式,加密和解密使用不同的密钥。公钥可以公开,任何人都可以获得,私钥则只有一个人可以拥有。采用这种方式,可以保证信息传输的安全性。 在C#中实现RSA加密算法 C#提供了RSACryptoServiceProvider类,可以用来…

    C# 2023年6月6日
    00
  • .Net行为型设计模式之中介者模式(Mediator)

    .Net行为型设计模式之中介者模式(Mediator) 中介者模式是一种行为型设计模式,它的目的是减少对象之间的耦合度,增强对象之间的协作性,从而提高整个系统的灵活性和可维护性。 在中介者模式中,对象之间的通信都是通过中介者进行的,而不是直接相互引用。这样一来,系统中的每个对象都只需要跟中介者通信,而不用关心其他对象的存在,使得系统更加松耦合,也更加容易扩展…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部