如何存储你需要的信息:变量——WEB开发系列42

news2024/11/17 5:41:09

变量是一种用于存储数据的基本工具。它允许我们在代码中给某个数据赋予一个名字,便于在后续的代码中引用、更新、甚至重新赋值。


一、什么是变量?

变量本质上是一个“容器”,它存储特定的信息或数据。你可以把变量想象成一个标签,标签上写着名字,贴在一个容器上,而容器内装着数据。你可以通过这个标签随时找到并引用这个数据,甚至在代码执行的过程中改变它的值。

变量的作用:

  1. 存储数据:变量可以存储用户输入的值、API 调用返回的数据、计算的结果等等。
  2. 提高可读性:通过给数据起一个清晰的名字,变量能让代码变得更加易于理解。
  3. 便于维护:一旦需要修改某个值,只需要更新一次定义该变量的地方,而不需要在代码的每一个引用位置都修改。

二、声明变量

在 JavaScript 中,声明变量的方式有多种,最常见的是使用 ​​var​​、​​let​​ 和 ​​const​​​。不同的声明方式会带来不同的作用域和行为,尤其是在处理变量的生命周期时差别明显。

var age;    // 声明一个变量,但未赋值
let name;   // 使用 let 声明一个变量
const pi;   // 使用 const 声明一个常量(注意:const 必须在声明时赋值)

三、初始化变量

在声明变量之后,可以给它赋值,这个过程称为初始化。初始化的意思就是给变量一个初始值,让它具有意义。如果我们声明了变量但没有赋值,变量的值会默认为 ​​undefined​​。

var age = 25;          // 初始化 age 变量为 25
let name = "Alice";    // 初始化 name 变量为字符串 "Alice"
const pi = 3.14;       // 初始化常量 pi 为 3.14

注意,​​const​​​ 声明的变量在初始化后不能再被重新赋值,如果尝试更新它的值,代码会报错。

pi = 3.1415;   // 会抛出一个错误,因为 pi 是常量

四、var 与 let 的区别

作用域不同

​var​​ 的作用域是函数级别的,而 ​​let​​ 的作用域是块级别的。

if (true) {
  var a = 10;  // var 在整个函数或全局范围内有效
  let b = 20;  // let 只在代码块 { } 中有效
}

console.log(a);  // 输出 10
console.log(b);  // 报错:b 没有定义

由于 ​​var​​ 的作用域是函数级别的,所以它会忽略代码块 ​​{}​​,而 ​​let​​​ 则严格遵守块作用域,仅在代码块内部有效。

变量提升

​var​​ 声明的变量会被“提升”,即声明会被提升到当前作用域的顶部,而 ​​let​​ 声明的变量不会。

console.log(x);  // 输出 undefined
var x = 5;

console.log(y);  // 报错:y 不能在声明前使用
let y = 10;

在这个例子中,​​var​​ 声明的变量 ​​x​​ 虽然在使用前未被赋值,但声明本身已经“被提升”到了顶部,因此不会抛出错误。而 ​​let​​ 声明的变量 ​​y​​​ 则必须在声明之后才能使用。


五、更新变量(关于变量命名的规则)

变量名在编程中至关重要,它不仅要简洁易懂,还要遵循一些基本规则:

  1. 只能包含字母、数字、下划线(_)和美元符号($)
  2. 不能以数字开头,比如 ​​123name​​ 是非法的变量名。
  3. 区分大小写,​​name​​ 和 ​​Name​​ 是两个不同的变量。
  4. 不能是保留字,如 ​​function​​、​​return​​​ 等 JavaScript 保留字不能作为变量名。

六、更新变量

一旦声明了变量,我们可以随时更新它的值(​​const​​ 除外)。更新变量的过程也很简单,直接赋予它新的值即可:

let age = 25;
age = 30;    // 更新 age 变量为 30
console.log(age);  // 输出 30

不过,需要注意的是,常量(​​const​​​)是无法重新赋值的,这也是它的特性。


七、变量类型

JavaScript 中有多种数据类型,每个变量都可以存储不同类型的数据。在 JavaScript 中,最常见的变量类型包括:

  1. Number:用于存储数字,包括整数和浮点数。
  2. String:用于存储文本或字符串。
  3. Boolean:用于存储布尔值,即 ​​true​​ 或 ​​false​​。
  4. Array:一种特殊类型的对象,用于存储多个值。
  5. Object:用于存储键值对。

Number(数字)

​Number​​ 类型可以存储整数和浮点数:你可以在变量中存储数字,不论这些数字是像 42(也叫整数)这样,或者像 3.14 这样的小数(也叫做浮点数)。与其他编程语言不同,在 JavaScript 中你不需要声明一个变量的类型。当你给一个变量数字赋值时,不需要用引号括起来。

let a = 42;       // 整数
let b = 3.14;     // 浮点数

String(字符串)

字符串用于存储文本,它可以由单引号、双引号或反引号包围:字符串是文本的一部分。当你给一个变量赋值为字符串时,你需要用单引号或者双引号把值给包起来,否则 JavaScript 将会把这个字符串值理解成别的变量名。

let str1 = "Hello";      // 双引号
let str2 = 'World';      // 单引号
let str3 = `JavaScript`; // 反引号(模板字符串)

Boolean(布尔值)

布尔值只有两个可能的取值:​​true​​ 和 ​​false​​。它们通常用于条件判断:它们通常被用于在适当的代码之后,测试条件是否成立。

let isAdult = true;
let hasLicense = false;

Array(数组)

数组是一种特殊的对象,它用于存储有序的值列表。每个值都有一个对应的索引,索引从 0 开始:

let fruits = ["Apple", "Banana", "Orange"];
console.log(fruits[0]);  // 输出 "Apple"

Object(对象)

对象是键值对的集合,每个键都有一个对应的值。对象可以用于存储复杂的数据结构:对象是现实生活中的模型的一种代码结构。你可以有一个简单的对象,代表一个停车场,并包含有关其宽度和长度的信息,或者你可以有一个代表一个人的对象,并包含有关他们的名字,身高,体重,他们说什么语言,如何说“你好”等等。

let person = {
  name: "John",
  age: 30,
  isMarried: false
};

console.log(person.name);  // 输出 "John"

八、动态类型

JavaScript 是一种动态类型语言,这意味着变量的类型可以在运行时动态改变。换句话说,变量在声明时不需要指定类型,后续可以存储任何类型的数据。

let data = 10;     // data 是一个数字
data = "Hello";    // data 现在是一个字符串
data = true;       // data 现在是一个布尔值

这种灵活性使得 JavaScript 非常强大,但也带来了一定的潜在问题,特别是在调试时,变量类型的频繁变化可能导致不可预见的错误。因此,虽然动态类型很方便,但在实际编程中要谨慎使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2174628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

巧用switch-case消除条件判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen 在之前的文章中,我们有提交消除if-else代码的方法: 结合HashMap与Java 8的Function和Optional消除ifelse判断巧用枚举消除逻辑判…

工控主板在工业控制中扮演什么角色

工控主板在工业控制中扮演着至关重要的角色,它是工业控制系统的核心组件,负责连接、控制和管理各种工业设备,实现自动化生产和智能化管理。具体来说,工控主板在工业控制中的作用可以归纳为以下几个方面: 一、核心控制…

MNIST手写数字数据集

数据集 官网链接失效,我找到数据集后,上传到码云,并在这里分享。 打开链接,进入如下目录,即可找到如下八个文件: 下面是一些可有可无的介绍。 Mnist数据集介绍 Mnist数据集包含70000张手写数字图片&#x…

IO(Reader/Writer)

1.Reader a.简介 i.是Java的IO库提供的另一种输入流。和InputStream的区别是:InputStream是字节流,以byte为单位,Reader是字符流,以char为单位。 ii.java.io.Reader是所有字符输入流的超类。 b.FileReader i.FileReader默认的编…

【Kubernetes】常见面试题汇总(四十三)

目录 98. kube-apiserver 和 kube-scheduler 的作用是什么? 99.您对云控制器管理器了解多少? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)…

甘肃辣椒油:舌尖上的热辣诱惑

💥宝子们,今天必须要给你们安利甘肃食家巷的辣椒油🌶️!✨甘肃辣椒油,那可是有着独特魅力的美食瑰宝😍。它以其鲜艳的色泽、浓郁的香气和醇厚的辣味,瞬间点燃你的味蕾🔥。&#x1f3…

关于聚类算法的一份介绍

在这篇文章中我将介绍无监督算法中“聚类”部分的知识,其中关于K均值聚类、层次聚类、密度聚类部分我将各附上一份实际运用的代码,而其余的像学习向量量化、高斯混合聚类部分则只是简单介绍下概念。 一、 关于聚类 首先我先简单介绍下聚类算法有关的东…

2024年7月大众点评温州美食店铺基础信息

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时,大众点评的数据参考价值非常大,截至2024年7月,大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 温州餐饮美食店铺约6.5万家,有均…

CTF-SSH私钥泄露

CTF-SSH私钥泄露 一.信息探测--查看开放的服务--分析探测结果-- 探测大端口的信息 深入挖掘ssh信息![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6baf0b5de72d537c7093d3e2394d93cd.png#pic_center)解密ssh秘钥信息 工具:kali Linux 一.信息探测…

IO相关知识(Filter/序列化)

1.Filter模式 a.简介 i.直接使用继承,为各种InputStream附加更多功能,根本无法控制代码的复杂度,很快就会失控。 ii.为了解决依赖继承会导致子类数量失控的问题,JDK首先将InputStream分为两大类: …

SpringBoot+Activiti7工作流入门实例

目录 文章目录 目录准备Activiti建模工具1、BPMN-js在线设计器1.1 安装1.2 使用说明1.3运行截图 2、IDEA安装Activiti Designer插件2.1安装插件2.2 设置编码格式防止中文乱码2.3 截图 简单工作流入门实例1. 新建Spring Boot工程2. 引入Activiti相关依赖添加版本属性指定仓库添加…

10.1软件工程知识详解上

软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…

一文上手SpringSecuirty【六】

自定义认证流程完成之后,前端收到了后端生成的token,那么在之后的所有请求当前,都必须携带token.作为服务器来说,得验证这个token,是否合法. 一、验证token是否合法 1.1 OncePerRequestFilter过滤器 OncePerRequestFilter是 Spring 框架中的一个过滤器,用于确保在…

强化-极限

不利于元素及时提现 要学会构建导数(按照定义)

老挝旅游如何解决沟通问题?《老挝语翻译通》app支持语音识别翻译功能,能有效解决语言不同的痛点

老挝,一个东南亚的神秘国度,以其独特的文化和语言吸引着全球旅行者和语言爱好者。为了帮助大家更好地了解和学习老挝语,我们推出了《老挝语翻译通》App,一款集翻译、学习、旅游于一体的多功能工具。 功能亮点 实时翻译&#xff1…

滚珠丝杆如何安装滚珠?

滚珠丝杆安装滚珠是一门非常专业的知识,其安装过程需要细致且精确,这样才能确保其后续运行的顺畅与稳定。以下是安装滚珠的详细步骤: 一、准备工作 确保工作区域清洁无尘,准备合适的螺丝刀、扳手等工具,以及适量的润滑…

win10文件共享设置 - 开启局域网文件共享 - “您没有权限访问,请与网络管理员联系请求访问权限”解决方案

实现步骤: 1、在“网络和共享中心”关闭“密码保护的共享” 2、在“启用和关闭windows功能”中开启SMB文件共享支持。 3、在磁盘安全选项中添加“everyone”用户(重点!) 详细操作: https://blog.csdn.net/Skyirm/a…

怎么不用付费直接编辑pdf?5款pdf在线编辑器免费推荐给你!

在我们日常工作中,可能会经常需要直接编辑修改pdf内容,例如,在将文档发送给其它人之前,您可能需要进行一些修改;或者当扫描的文本出现错误时,您也需要进行修正。此时,如果有一款在线编辑器&…

【笔记】7.1 小功率整流滤波电路

一、 单相整流电路 任务:把正弦电压转变为单向脉动的电压。 类型:有单相半波、全波、桥式和倍压整流等。 分析方法:为分析简单起见,把二极管当作理想元件处理,即二极管的正向导通电阻为零,反向电阻为无穷…

北斗三号多模对讲机TD70:公专网融合、数模一体、音视频调度,推动应急通信效能升级

随着国家对应急通信和精准定位技术的重视程度不断提高,相关技术和设备的研发与应用也得到了迅猛发展。特别是在边防巡逻、林业巡防、海上作业等领域,通信设备的可靠性和功能性直接关系到人员的生命安全和任务的成功完成。 近年来,我国政府高度…