广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript基本数据类型和引用数据类型是什么
  • 933
分享到

JavaScript基本数据类型和引用数据类型是什么

2024-04-02 19:04:59 933人浏览 独家记忆
摘要

本篇内容主要讲解“javascript基本数据类型和引用数据类型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript基本数据类型和引用数据类

本篇内容主要讲解“javascript基本数据类型和引用数据类型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript基本数据类型和引用数据类型是什么”吧!

ECMAScript包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值那些可能有多个值构成的对象。

在进行变量赋值时,解析器必须确定这个值是基本类型值还是引用类型值。常用的5中基本数据类型为:Undefined、Null、Boolean、Number和String。基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。而引用类型的值是保存在内存中的对象。JavaScript不允许直接访问内存中的位置,即不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。因此,引用类型的值是按引用访问的。

1. 动态的属性

对于引用类型的值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法。例如:

var person = new Object();  person.name = "John";  alert(person.name); //"John"

只要对象不被销毁或者这个属性不被删除,这个属性就一直存在。但我们不能给基本类型的值添加属性,尽管并不会导致任何错误。

2. 复制变量值

如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后将该值复制到为新变量分配的位置上,例如:

var num1 = 5;  var num2 = num1; //5

下图形象地展示了复制基本类型值的过程:

JavaScript基本数据类型和引用数据类型是什么

当从一个变量向另一个变量复制引用类型的值时,同样会将存储在变量对象中的值复制一份放到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用同一个对象。因此,改变其中一个变量,就会影响另一个变量,例如:

var obj1 = new Object();  var obj2 = obj1;  obj1.name = "John";  alert(obj2.name); //"John"

JavaScript基本数据类型和引用数据类型是什么

3. 传递参数

ECMAScript中所有函数的参数都是按值传递的。把函数外部的值复制给函数内部的参数,就和把一个变量的值复制给另一个变量一样。无论传递的是基本类型的值还是引用类型的值。这里需要注意,访问变量有按值和按引用两种方式,但参数只能按值传递。

在向参数传递基本类型的值时,被传递的值会被复制给一个局部变量(即命名参数)。例如:

function addTen(num){  num += 10;  return num;  }  var count = 20;  var result = addTen(count);  alert(count); //20,没有变化  alert(result); //30

参数实际上是函数的局部变量。参数num和变量count互不认识,它们只是具有相同的值。假如num是按引用传递的,那么count的值也会变成30,从而反应函数内部的变化。

在向参数传递引用类型的值时,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反应在函数外部。例如:

function setName(obj){  obj.name = "John";  }  var person = new Object();  setName(person);  alert(person.name); //"John"

在这个函数内部,obj和person引用的是同一个对象。换句话说,即使这个值是按值传递的,obj也会按引用来访问同一个对象。于是,在函数内容为obj添加nama属性在函数外的person对象也有所反应,因为person指向的对象在堆内存中只有一个,而且是全局对象。有许多开发者认为,在函数内容修改的对象会在全局作用域中反应出来,说明参数是按引用传递的,这个观点其实是错误的,看下面的代码:

function setName(obj){  obj.name = "John";  obj = new Object();  obj.name = "Evan";  }  var person = new Object();  setName(person);  alert(person.name); //"John"

如果person是按引用传递的,那么person就会自动被修改为指向其name属性为"Evan"的新对象,但我们访问person.name时发现其值仍然为"John",这说明即使在函数内部修改了参数的值,但原始的引用仍然保持不变。实际上,在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象在函数执行完成之后会立即销毁。

4. 检测类型

要检测一个值是不是基本数据类型,typeof操作符是***工具。它可以检测一个变量是字符串、数值、布尔值还是undefined。如果一个变量是对象或null,则typeof操作符会返回object。

但是在检测引用类型的值时,typeof用处就不那么大了,通常我们并不想知道某个值是对象,而想知道它是什么类型的对象,此时可以使用instanceof操作符,如果变量是给定引用类型的实例,那么instanceof操作符就会返回true。例如:

alert(person instanceof Object);    //变量person是Object吗? alert(colors instanceof Array);    //变量colors是Array吗? alert(pattern instanceof RegExp);    //变量pattern是RegExp吗?

所有引用类型的值都是Object的实例。因此,在检测一个引用类型的值或Object构造函数时,instanceof都会返回true。当用instanceof操作符检测一个基本类型的值时,都会返回false,因为基本类型不是对象。

到此,相信大家对“JavaScript基本数据类型和引用数据类型是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: JavaScript基本数据类型和引用数据类型是什么

本文链接: https://www.lsjlt.com/news/86310.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript基本数据类型和引用数据类型是什么
    本篇内容主要讲解“JavaScript基本数据类型和引用数据类型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript基本数据类型和引用数据类...
    99+
    2022-10-19
  • Javascript中基本类型和引用类型是什么
    这篇文章给大家分享的是有关Javascript中基本类型和引用类型是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1.基础类型A. 基础类型有5种,Number,...
    99+
    2022-10-19
  • js基本数据类型和引用数据类型的区别
    本篇内容主要讲解“js基本数据类型和引用数据类型的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js基本数据类型和引用数据类型的区别”吧!基本数据类型和引用...
    99+
    2022-10-19
  • JavaScript 基本数据类型和引用类型的区别是怎么样的
    这篇文章将为大家详细讲解有关JavaScript 基本数据类型和引用类型的区别是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。js基本数据类型:js...
    99+
    2022-10-19
  • JavaScript基本数据类型有什么
    本篇内容介绍了“JavaScript基本数据类型有什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、HTML:HTML超文本标记语言...
    99+
    2023-06-02
  • Kotlin基本数据类型是什么
    Kotlin基本数据类型是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。fun main() {   &n...
    99+
    2023-06-22
  • 基本数据类型
    Python支持多种数据类型 在计算机内部,可把任何数据都看成一个对象,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来   整数   Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方...
    99+
    2023-01-31
    数据类型
  • java中基本数据类型是什么
    小编给大家分享一下java中基本数据类型是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、整型byte 、short 、int 、longbyte 的取值范围:-128~127(-2的7次方到2的7次方-1)shor...
    99+
    2023-06-15
  • 关于java中基本数据类型与引用数据类型的介绍
    一、基本数据类型byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0int:整型,用于存储整...
    99+
    2015-04-05
    java入门 java 基本数据类型 引用数据类型
  • Java数据类型分类与基本数据类型转换
    目录1.数据类型的分类2.基本数据类型转换(1)自动类型转换(2)强制类型转换 1.数据类型的分类 Java的数据类型主要分为两类:基本数据类型、引用数据类型 Java中...
    99+
    2022-11-13
  • 【Python3】基本数据类型-整型(
    整型(int) 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775...
    99+
    2023-01-31
    数据类型 整型
  • Java 基本数据类型
    目录   Java 基本数据类型 内置数据类型 引用类型 Java常量   Java 基本数据类型       变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分...
    99+
    2023-09-24
    python 算法 开发语言
  • Python3 基本数据类型
    Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 等号(=)用来给变量赋值。 等号(=)运算符左...
    99+
    2023-01-30
    数据类型
  • Python基本数据类型
    Numbers (数字) 1、数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。 2、Python支持四种不同的数字类型: int(有符号整型) long(长整型[也可以代表八进制和十六进制...
    99+
    2023-01-31
    数据类型 Python
  • Python3基本数据类型
    Python3的基本数据类型 变量不需要提前声明 每个变量使用前必须赋值,赋值之后能会被建立 Python中,变量是没有类型的,这里所说的“类型”是指内存中所存储的对像的类型。 Python中有六种标准数据类型 Number (数字) ...
    99+
    2023-01-31
    数据类型
  • 基本数据类型(二)
      列表是 Python 最常用的数据类型,它是有序元素的集合,元素之间以逗号分隔,用中括号括起来,可以是任何数据类型。同时它也是一种序列,支持索引、切片、加、乘和成员检查等。 数组:数据类型必须一致,有序的元素序列。 列表:Py...
    99+
    2023-01-31
    数据类型
  • java基本数据类型
    java基本数据类型有:1、byte,用于处理文件和网络传输等字节级别的数据;2、short,可以用于节约内存空间的需求;3、int,使用最广泛的整数类型;4、long,用于处理需要较大值的整数计算;5、float,用于科学计算和需要高精度...
    99+
    2023-08-02
  • C#基本数据类型分类
    本篇内容主要讲解“C#基本数据类型分类”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#基本数据类型分类”吧!C#基本数据类型中的值类型是直接存储它的数据内容,而引用类型存储的是对象的引用,这两...
    99+
    2023-06-18
  • javascript有几种基本数据类型
    小编给大家分享一下javascript有几种基本数据类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • Python基本数据类型有什么
    这篇文章主要讲解了“Python基本数据类型有什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基本数据类型有什么”吧!  1.数值  int  flaot  2.字符串Stri...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作