再谈Javascript中的基本类型和引用类型(推荐)

再谈JavaScript中的基本类型和引用类型

什么是基本类型和引用类型?

JavaScript中的数据类型可以分为基本类型和引用类型。基本类型包括数字、字符串、布尔值、null、undefined和Symbol;而引用类型包括对象、数组、函数等。

基本类型是指简单的数据段,而引用类型是指由多个数据段(属性)组成的对象,每个属性都可以是基本类型或引用类型。

基本类型和引用类型的区别

  1. 存储方式不同。基本类型的数据是直接存储在栈(stack)中的简单数据段,它们的值直接存储在变量访问的位置;而引用类型的值是对象,保存在堆(heap)内存中,而栈(stack)中保存的则是对象在堆内存中的地址。

  2. 赋值方式不同。基本类型的赋值是按值传递,也就是传递变量的值给新变量;而引用类型的赋值是按引用传递,也就是传递的是指向堆内存中的地址,因此两个变量指向同一个对象。

下面分别对基本类型和引用类型进行详细的解释和示例说明。

基本类型

数字

数字包括整数和浮点数,可以直接进行算术运算:

let num1 = 100;
let num2 = 3.14;
let result = num1 + num2; // 103.14

字符串

字符串是一个由零个或多个字符组成的序列,可以用单引号或双引号括起来:

let str1 = 'hello';
let str2 = "world";
let result = str1 + ' ' +str2; // "hello world"

布尔值

布尔值只有两个值:true和false,常用于条件判断和逻辑运算:

let flag1 = true;
let flag2 = false;
if(flag1 || flag2) {
  console.log("at least one is true");
} else {
  console.log("both are false");
}

null和undefined

null和undefined都表示没有值,区别在于null是表示变量没有对象,而undefined表示变量没有被初始化。两者在使用时的效果相似。

let a = null;
let b = undefined;
console.log(typeof a); // object
console.log(typeof b); // undefined

Symbol

Symbol是ES6引入的一种新的原始数据类型,用于创建独一无二的值,常用于对象属性的标识符。

let s1 = Symbol("foo");
let s2 = Symbol("foo");
console.log(s1 === s2); // false 因为Symbol创建的每个值都是独一无二的

引用类型

对象

对象是由多个键值对组成的集合,每个键对应一个值(可以是基本类型或引用类型),键值对之间用逗号分隔,整个对象使用花括号括起来。对象的属性可以通过点符号(对象.属性)或方括号(对象['属性'])进行访问。

let person = {
  name: {
    first: 'John',
    last: 'Doe'
  },
  age: 30,
  hobbies: ['reading', 'swimming', 'gaming']
};
console.log(person.name.first); // 'John'
console.log(person['age']); // 30
console.log(person.hobbies[0]); // 'reading'

数组

数组是由多个元素组成的集合,每个元素可以是基本类型或引用类型,用方括号括起来。数组可以用下标(从0开始)来访问各个元素。

let arr = [1, 'hello', true, {color: 'blue'}];
console.log(arr[0]); // 1
console.log(arr[1]); // 'hello'
console.log(arr[3].color); // 'blue'

函数

函数是一种可以被调用的对象,它可以传入参数并返回一个结果。函数也可以作为对象的属性进行调用。

function sum(a, b) {
  return a + b;
}

let person = {
  name: 'John',
  age: 30,
  greet: function() {
    console.log(`Hi, my name is ${this.name} and I'm ${this.age} years old.`);
  }
};

console.log(sum(10, 20)); // 30
person.greet(); // 'Hi, my name is John and I'm 30 years old.'

总结

基本类型和引用类型在存储方式、赋值方式等方面有着很大的不同,了解这些差别有助于我们更好地理解JavaScript中的数据类型,从而更加高效地编写代码。在编写代码时,需要根据具体情况选择适当的数据类型,以达到最佳的代码效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:再谈Javascript中的基本类型和引用类型(推荐) - Python技术站

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

相关文章

  • HTML+CSS+JavaScript实现放大镜效果

    实现放大镜效果通常需要使用HTML、CSS和JavaScript三种技术进行联合开发。下面将详细讲解HTML+CSS+JavaScript实现放大镜效果的完整攻略,具体分为以下几个步骤: 第一步:准备工作 在开发过程中,我们需要准备一些素材,包括原始图片、处理后的图片,以及用于展示的页面等。 第二步:HTML编写 在编写HTML代码时,我们需要将放大镜效果展…

    JavaScript 2023年5月28日
    00
  • vue electron实现无边框窗口示例详解

    下面是对“Vue Electron实现无边框窗口示例”的详细讲解。 1. 前置条件 在进行本示例的操作前,需要具备以下基本条件: 了解Vue.js框架的基本概念和应用方法; 了解Electron框架的基本概念和应用方法; 熟悉JavaScript、HTML和CSS等基本前端开发技能。 2. 创建Vue项目 可以通过Vue-CLI来快速创建一个Vue项目,在命…

    JavaScript 2023年6月11日
    00
  • js简单遍历获取对象中的属性值的方法示例

    下面是关于“JS简单遍历获取对象中的属性值的方法示例”的完整攻略: 什么是JS对象? 在JavaScript中,对象是一种复杂的数据类型,它允许开发人员存储和组织以键值对的方式描述的数据。对象通常使用大括号{}来表示,其中键和值之间使用冒号:连接。 在JS中,对象中的属性值可以是任意数据类型。 示例: var person = { name: "张…

    JavaScript 2023年5月27日
    00
  • 通过扫小程序码实现网站登陆功能

    通过扫小程序码实现网站登录功能是一种方便、快捷且安全的方式。以下是完整攻略: 步骤一:生成小程序码 首先,我们需要创建一个用于扫描的小程序码。 在微信公众平台上注册并登录小程序开发者账号,创建一个小程序。 进入“开发” -> “开发设置”,启用“小程序登录”。 在后台服务器上生成一个随机字符串,作为本次登录的唯一标识(也可以使用其他方式生成)。 使用该…

    JavaScript 2023年5月19日
    00
  • javascript 模拟坦克大战游戏(html5版)附源码下载

    让我来详细讲解一下“javascript 模拟坦克大战游戏(html5版)附源码下载”的完整攻略。首先,这个游戏是使用html5和javascript开发的,所以我们需要了解一些前端基础知识。 1. 技术要求 HTML5 Javascript CSS 2. 游戏介绍 这个游戏是一款双人对战的坦克大战游戏,支持键盘操作。游戏的地图分为草地、钢铁墙和河流三种地形…

    JavaScript 2023年6月10日
    00
  • 第一次接触神奇的Bootstrap表单

    关于“第一次接触神奇的Bootstrap表单”的攻略,建议按照以下步骤来进行: 一、了解Bootstrap表单 Bootstrap表单是基于Bootstrap框架开发的,具备响应式设计、易于定制和丰富的细节特性。它可以让开发者快速创建美观的表单,同时避免了很多面对纯HTML/CSS时需要自己编写大量css代码的苦恼。 二、引入Bootstrap表单 引入Bo…

    JavaScript 2023年6月10日
    00
  • js获取 gif 的帧数的代码实例

    下面是如何通过JavaScript获取gif图片的帧数的完整攻略: 获取gif的帧数 在JavaScript中获取gif的帧数,可以使用Image对象的onload事件,通过遍历每一帧来获取gif的帧数。具体步骤如下: 创建一个Image对象。 将src属性设置为gif图片的URL地址。 在Image对象上注册onload事件回调函数。 在回调函数中,可以通…

    JavaScript 2023年6月11日
    00
  • 详解JS模块导入导出

    下面是详解JS模块导入导出的完整攻略。 什么是模块 在JavaScript中,模块(Module)指的是一个独立的、可复用的代码块,类似于传统的库(Library)。模块的引入可以将一个大的代码块分成多个小的代码块,这样便于结构化编程、提高代码复用性、隔离变量作用域等。 模块的导入导出 JavaScript中的模块可通过导入导出机制实现模块间的代码共享。 导…

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