今日文章的浪漫主义
“你没爱过,你不懂”
这篇文章是JavaScript的学习笔记,参照MDN.
目标: 熟悉 JavaScript 的变量使用
变量是什么?
一个变量,就是一个用于存放数值的容器。这个数值可能是一个用于累加计算的数字,或者是一个句子中的字符串。变量的独特之处在于它存放的数值是可以改变的。
在上面的例子中,点击按钮之后。
- 第一行代码会在屏幕上弹出一个对话框,让你输入名字,然后存储输入的名字到一个变量。
- 第二行代码将会显示包含你名字的欢迎信息,你的名字就是从之前的变量里面读取的。
变量的另一个特性就是它们能够存储任何的东西
– 不只是字符串和数字。变量可以存储更复杂的数据,甚至是函数。
我们说,变量是用来存储数值的,那么有一个重要的概念需要区分。
变量不是数值本身,它们仅仅是一个用于存储数值的容器。你可以把变量想象成一个个用来装东西的纸箱子。
声明变量
要想使用变量,你需要做的第一步就是创建它 – 更准确的说,是声明一个变量。
- 声明一个变量的语法是在 var 或 let 关键字之后加上这个变量的名字:
let myName;
let myAge;
在这里我们声明了两个变量 myName
和 myAge
备注: 在 JavaScript 中,所有代码指令都会以分号结尾 ;
如果忘记加分号,你的单行代码可能执行正常,但是在多行代码在一起的时候就可能出错。所以,最好是养成主动以分号作为代码结尾的习惯。
以上这两个变量并没有数值,他们是空的容器。当你输入变量名并回车后,你会得到一个undefined
的返回值。如果他们并不存在的话,那你就会得到一个报错信息。
备注: 千万不要把两个概念弄混淆了,
“一个变量存在,但是没有数值”和“一个变量并不存在” — 他们完全是两回事
— 在前面你看到的盒子的类比中,不存在意味着没有可以存放变量的“盒子”。
没有定义的值意味着有一个“盒子”,但是它里面没有任何值。
初始化变量
一旦你定义了一个变量,你就能够初始化它。方法如下,在变量名之后跟上一个“=”,然后是数值:
myName = 'mu';
myAge = 18;
var 与 let 的区别
“为什么我们需要两个关键字来定义变量?”,“为什么有 var 和 let 呢?"。
回到最初创建 JavaScript 时,是只有 var 的。
let 是在现代版本中的 JavaScript 创建的一个新的关键字,用于创建与 var 工作方式有些不同的变量,解决了过程中的问题。
描述
vet 允许您声明限制在块语句或使用它的表达式的作用域内的变量,这与 var 关键字不同,var 关键字全局声明变量,或局部声明整个函数,而不考虑块作用域。var和var之间的另一个区别是,只有当解析器评估它时,后者才会初始化为一个值.
例子
- 范围规则
let 声明的变量的作用域位于为其声明它们的块中,以及包含在任何包含的子块中。通过这种方式,let 的工作方式非常像 var。主要区别在于 var 变量的作用域是整个封闭函数:
function varTest() {
var x = 1;
{
var x = 2; // same variable!
console.log(x); // 2
}
console.log(x); // 2
}
function letTest() {
let x = 1;
{
let x = 2; // different variable
console.log(x); // 2
}
console.log(x); // 1
}
更新变量
一旦变量赋值,您可以通过简单地给它一个不同的值来更新它。
myName = 'mu';
myAge = 23;
这样就可以给变量进行一个简单的赋值。
关于变量命名的规则
你可以给你的变量赋任何你喜欢的名字,但有一些限制。
一般你应当坚持使用拉丁字符 (0-9,a-z,A-Z) 和下划线字符。
- 变量名不要以数字开头。这种行为是不被允许的,并且将引发一个错误。
- 一个可靠的命名约定叫做 “小写驼峰命名法”,用来将多个单词组在一起,小写整个命名的第一个字母然后大写剩下单词的首字符。
- 变量名不要以下划线开头—— 以下划线开头的被某些 JavaScript 设计为特殊的含义,因此可能让人迷惑。
- 让变量名直观,它们描述了所包含的数据。不要只使用单一的字母/数字,或者长句。
- 变量名大小写敏感——因此myage与myAge是 2 个不同的变量。
- 最后也是最重要的一点—— 你应当避免使用 JavaScript 的保留字给变量命名。保留字,即是组成 JavaScript 的实际语法的单词!因此诸如 var, function, let和 for等,都不能被作为变量名使用。浏览器将把它们识别为不同的代码项,因此你将得到错误。
我们来看一些好的命名实例
变量类型
我们可以为变量设置不同的数据类型。
Number
String
Boolean
Array
Object
动态类型
从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你! |
如果又出错的,请各位友友指正。
新人报到,各位友友们,给我个三联(点赞,关注,收藏)