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)。
决定一个名字是否合法的四项规则:
- 第一个字符必须是字母、美元符号或下划线——绝不能是数字。
- 第一个字符之后,字母、数字、美元符号和下划线都是允许的。
- 不允许使用空格,因此两个单词连在一起表示学生姓名,而不是保留为两个单词。
- 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.
