Java脚本变量:声明、赋值(示例)

⚡ 智能摘要

Java脚本变量用于存储诸如姓名、数字或表达式结果之类的值。使用 var、let 或 const 声明变量会预留一个命名空间,脚本的其余部分可以读取和更新该空间。

  • 🔘 宣言: 关键字 var、let 或 const 会在任何代码行读取或写入变量名之前创建该变量名。
  • ☑️ 任务: 单个等号会将一个值复制到变量中,无论是在声明行还是之后。
  • 命名: 名称以字母、美元符号或下划线开头,大写字母和小写字母也算作不同的名称。
  • 🧪 现代关键词: const 适用于永远不会改变的值,let 适用于会改变的值,而 var 主要用于旧版脚本。
  • 🛠️ 范围: let 和 const 会留在它们各自的大括号内,而 var 则会遍历整个外部函数。
  • 📌 常见故障: 重新赋值常量、过早读取 let 或省略关键字都会引发不同的错误。

声明一个 Java脚本变量及其赋值

变量用于存储值(name = “John”)或表达式(sum = x + y)。脚本中需要保留的每个值——用户名、累计总数、是/否标志——都存储在变量中,因此,正确地声明和命名变量是编程中需要掌握的第一项技能。 JavaScript.

在中声明变量 Java脚本

在使用变量之前,需要先声明它。必须使用关键字 `var` 来声明变量,如下所示:

var name;

声明本身只创建了变量名,除此之外没有其他作用。此时变量存在,但其值为 undefined,因为尚未为其赋值。

⚠️ 版本说明: var 是最初的声明关键字,在所有浏览器中仍然有效。ES6(2015)新增了 var。 常量这些都是现代的关键词。 Java脚本用途。两者将在本页下方与 var 进行比较。

为变量赋值

您可以在声明变量时或声明变量之后为变量赋值。

var name = "John";

OR

var name;

name = "John";

两种形式最终结果相同。单个等号是…… 赋值运算符它将右侧的值复制到左侧的变量中。这不是相等性测试,相等性测试用 == 或 === 表示,属于比较类型。 条件陈述.

命名变量

虽然你可以随意命名变量,但为变量赋予描述性且有意义的名称是一种良好的编程实践。此外,变量名应以字母开头,并且区分大小写。因此,变量 studentname 和 studentName 是不同的,因为它们名称中的字母 n 不同(n 和 N)。

决定一个名字是否合法的四项规则:

  1. 第一个字符必须是字母、美元符号或下划线——绝不能是数字。
  2. 第一个字符之后,字母、数字、美元符号和下划线都是允许的。
  3. 不允许使用空格,因此两个单词连在一起表示学生姓名,而不是保留为两个单词。
  4. var、let、const、class 和 return 等保留字不能用作名称。

按照惯例 Java脚本名称使用驼峰命名法,因此第一个单词小写,后面的每个单词都以大写字母开头:firstName、totalPrice、isLoggedIn。

以下脚本声明了两个变量,对它们应用了五个算术运算符,并将每个结果写入页面。请自行尝试:

<html>
<head>
<title>Variables!!!</title>
<script type="text/javascript">
var one = 22;
var two = 3;
var add = one + two;
var minus = one - two;
var multiply = one * two;
var divide = one/two;
	document.write("First No: = " + one + "<br />Second No: = " + two + " <br />");
	document.write(one + " + " + two + " = " + add + "<br/>");
	document.write(one + " - " + two + " = " + minus + "<br/>");
	document.write(one + " * " + two + " = " + multiply + "<br/>");
	document.write(one + " / " + two + " = " + divide + "<br/>");
</script>
</head>
<body>
</body>
</html>

现代语言中 var、let 和 const 的区别 Java脚本

仅当 var 存在时 JavaScript 最初编写时,有两个习惯会让初学者感到惊讶:它可以被静默地重复声明,并且会忽略代码块边界。后来添加了 let 和 const 来修复这两个问题。下表并列列出了这三个关键字。

行为 VAR 常量
适用范围 整体功能 围护块 围护块
可以重新分配 没有
可以在同一作用域内重新声明 没有 没有
声明行所需金额 没有 没有
在宣布之前阅读 返回 undefined 参考错误 参考错误

一个简单的习惯几乎可以应对所有情况:伸手去拿 常量 首先,切换到 当某个值确实需要改变时,例如某个计数器内部的值, Java脚本循环并且保留变量用于读取旧代码,而不是编写新代码。

可变范围和起重 Java脚本

作用域决定了脚本的哪些部分可以访问某个变量。`var` 声明属于包含它的函数,因此它会逃逸出该函数内部的任何 `if` 或 `for` 代码块。`let` 或 `const` 声明属于它所在的那个大括号,在大括号之外则不可见。

function demo() {
  if (true) {
    var wide = "visible throughout demo()";
    let narrow = "visible only inside these braces";
  }
  console.log(wide);
  console.log(narrow);
}

第一个 console.log 输出了字符串。第二个 console.log 抛出了 ReferenceError 异常,因为 if 代码块结束后,narrow 对象就不存在了。

吊装 这是故事的后半部分。 Java脚本在执行作用域内的任何一行代码之前,都会注册该作用域内的所有声明。变量名会被注册并设置为 undefined,因此提前读取它是合法的,但毫无意义。let 或 const 变量名注册时没有值,代码块顶部到声明行之间的空白称为声明行。 临时死区.

console.log(a);
var a = 1;

console.log(b);
let b = 2;

第一行输出 undefined。第三行以“初始化前无法访问 'b'”的错误信息结束——正是这个错误使得 let 比 var 更安全,因为它指出了真正的错误,而不是掩盖它。

声明时的常见错误 Java脚本变量

初学者在学习变量时,最常看到的控制台输出信息是五条。每条信息都指出了一个具体的原因,因此通常只需一行代码即可解决。

控制台消息 原因 固定
语法错误:标识符“x”已被声明 同一个代码块中,let 或 const 使用了两次,但名称相同。 重用现有变量,或者重命名第二个变量。
类型错误:分配给常量变量 常量被赋予了一个新值 如果需要更改值,请使用 let 声明。
ReferenceError:初始化前无法访问“x” 在时间死区内读取了 let 或 const 语句 将读取操作移到声明行下方
引用错误:x 未定义 这个名字从未被正式公布,或者拼写错误了。 请声明错误,或更正拼写和字母大小写。
预期有值的地方却显示为 undefined。 该变量已声明,但从未被赋值。 在首次读取之前赋值

在文件顶部添加“use strict”会将第四种情况(赋值给一个从未声明过的名称)的静默错误转化为可见错误,因此它应该出现在每个新脚本中。相同的变量规则保持不变地沿用到新脚本中。 数组, 对象以及为服务器端编写的代码 Node.js.

常见问题

任何一个。 Java脚本是动态类型的,所以一个变量可能先存储数字,然后存储字符串,最后存储对象。声明变量时保留的是名称,而不是类型。可以使用 typeof 函数随时检查变量的内容。

Java脚本创建了一个隐式全局变量,其他代码可能会意外地覆盖它。在文件顶部添加“use strict”可以将同一行代码转换为引用错误,这样错误就会立即显现,而不是悄无声息地扩散。

undefined 表示变量已声明但从未被赋值。null 是你故意赋予的值,表示“此处为空”。两者都是假值,但 typeof undefined 返回“undefined”,而 typeof null 返回“object”。

加号运算符用于连接字符串,因此 22 + “3” 会生成 “223”。如果需要进行算术运算,请先使用 Number() 或 parseInt() 进行转换。traction 没有文本意义,所以“3” - 1 正确地返回 2。

是的。`const` 锁定的是绑定关系,而不是值本身,所以 `const` 对象的属性和 `const` 数组的元素仍然可以改变。重新赋值变量本身会抛出 `TypeError`。当变量内容必须保持不变时,请使用 `Object.freeze()`。

现代编辑器内置的AI助手会根据上下文建议关键词和描述性名称,标记出应该设为常量(const)的变量,并一步完成所有用法的重命名。请将每个建议视为草稿,并确认其作用域是否正确。

通常来说,是的。 副驾驶 读取附近的代码并提供与周围样式匹配的名称,这有助于替换 x 或 temp 等占位符。 Rev仔细查看每个名称,因为即使是流畅的建议也可能描述错误的内容。

`console.log()` 会将当前值打印到浏览器控制台。要查看更详细的信息,可以在开发者工具的“源代码”面板中设置断点,并将鼠标悬停在代码名称上,或者将其添加到监视列表中,即可读取该行代码的具体值。

总结一下这篇文章: