目录
变量
1、什么是变量
变量就是一个装东西的盒子。
变量是用于存放数据的容器。我们可以通过 变量名 获取数据,甚至数据可以修改。
变量在内存中的存储
变量的本质:变量 是 程序 在内存中 申请的一块用来存放数据 的空间。
类似于酒店的房门,一个房间就可以看做是一个变量。
一个完整的 变量 是由 一个空间 和 变量名 组成的。
变量的作用主要用来存放数据的。
2、变量的使用
变量在使用时分为两步: (1)声明变量 (2)赋值
声明变量
var a = 1;
上面的代码中,var 是一个 JS 关键字,用来声明变量(variable变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管。
使用 var 声明一个名称为 a 的变量,= 等号 用来把右边的值赋给左边的变量空间中,此处代表赋值的意思。
变量值是程序员保存到变量空间的值。
a 是程序员定义的变量名,我们要通过变量名来访问内存中分配 的空间。
上面的代码先声明变量a,然后在变量a与数值1之间建立引用关系,称为将数值1“赋值”给变量a。以后,引用变量名a就会得到数值1。它表示通知解释引擎,要创建一个变量a。
注意,JavaScript 的变量名区分大小写,A和a是两个不同的变量。
变量的声明和赋值,是分开的两个步骤,上面的代码将它们合在了一起,实际的步骤是下面这样。
var a;
a = 1;
如果只是声明变量而没有赋值,则该变量的值是undefined。undefined是一个 JavaScript 关键字,表示“无定义”。
如果变量赋值的时候,忘了写var命令,这条语句也是有效的。
var a = 1; // 基本等同 a = 1;
但是,不写var的做法,不利于表达意图,而且容易不知不觉地创建全局变量,所以建议总是使用var命令声明变量。
如果一个变量没有声明就直接使用,JavaScript 会报错,告诉你变量未定义。比如下面 没有声明的变量b
上面代码直接使用变量b,系统就报错,告诉你变量b没有声明。
可以在同一条var命令中声明多个变量。
var a = 1;
a = '我';
a = 'true';
JavaScript 是一种 弱类型 或者说 动态类型 语言,也就是说,变量的类型没有限制,变量可以随时更改类型,只有在运行了之后,才能确定变量的类型的是什么。
var a = 1;
a = 'hello';
上面代码中,变量a起先被赋值为一个数值,后来又被重新赋值为一个字符串。第二次赋值的时候,因为变量a已经存在,所以不需要使用var命令。
如果使用var重新声明一个已经存在的变量,是无效的。
上面代码中,变量x声明了两次,第二次声明是无效的。
但是,如果第二次声明的时候还进行了赋值,则会覆盖掉前面的值。变量值将以最后一次赋的值为准。
var x = 1;
var x = 2;
// 等同于
var x = 1;
var x; x = 2;
3、变量的命名规范
4、变量提升
使用var 声明变量,出现变量提升,因为 var是函数作用域,而是 let 和 const 都属于块作用域
JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。
console.log(a);
var a = 1;
上面代码首先使用console.log方法,在控制台(console)显示变量a的值。这时变量a还没有声明和赋值,所以这是一种错误的做法,但是实际上不会报错。因为存在变量提升,真正运行的是下面的代码。
var a;
console.log(a);
a = 1;
最后的结果是显示undefined,表示变量a已声明,但还未赋值。
5、交换两个变量的值 案例
<title>变量案例弹出用户名</title>
<script>
//1、用户输入姓名 存储到一个myname 的变量里面
var myname = prompt('请输入你的名字');
alert('欢迎' + myname + '回来!\n 祝你在这里玩得开心')
</script>
<script>
/**
* 交换两个变量的值 案例
* js 是编程语言有很强的逻辑性在里面:
实现这个要求的思路,先怎么做后怎么做?
* 1、我们需要一个临时变量 temp 帮我们,它是空的
* 2、把apple1 赋值给 我们的临时变量 temp
* 3、把apple2 里面的 苹果给 apple1
* 4、把 临时变量 temp里面的值给 apple2。
*/
var temp;
var apple1 = '青苹果';
var apple2 = '红苹果';
temp = apple1;
apple1 = apple2;
apple2 = temp;
console.log("apple1 是" + apple1);
console.log("apple2 是" + apple2);
</script>
6、 变量 总结
为什么需要变量?
因为我们一些数据需要保存,所以需要变量。
变量是什么?
变量就是一个容器,用来存放数据的。方便我们以后使用里面的数据。
变量的本质是什么?
变量是内存里的一块空间,用来存储数据。
变量怎么使用的?
我们使用变量的时候,一定要声明变量,然后赋值。声明变量的本质是去内存申请空间。
什么是变量的初始化?
声明变量并赋值的这个过程,我们称之为变量的初始化。
变量命名规范有哪些?
变量名尽量要规范,见名知其意,驼峰命名法。
标识符
标识符(identifier)指的是用来识别各种值的合法名称。
最常见的标识符就是变量名,以及后面要提到的函数名。
JavaScript 语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript 引擎遇到非法标识符,就会报错。标识符命名规则如下:
1、标识符不能包含 * 星号 不能包含 + 加号 不能包含 -减号或 连词线
2、第一个字符,不能是数字,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),
以及美元符号($)和下划线(_)。
3、第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。
下面这些都是合法的标识符。
arg0 _tmp $elem π
下面这些则是不合法的标识符。
1a // 第一个字符不能是数字
23 // 同上
*** // 标识符不能包含星号
a+b // 标识符不能包含加号
-d // 标识符不能包含减号或连词线
中文是合法的标识符,可以用作变量名。
var 临时变量 = 1;
JavaScript有一些保留字,不能用作标识符:
arguments、break、case、catch、class、const、continue、
debugger、default、delete、do、else、enum、eval、export、
extends、false、finally、for、function、if、implements、
import、in、instanceof、interface、let、new、null、package、
private、protected、public、return、static、super、switch、
this、throw、true、try、typeof、var、void、while、with、yield。
字面量
字面量 是 在源代码中一个固定值的表示法,通俗来说 , 就是字面量表示如何表达这个值?
数字字面量 : 3 , 4 , 5 , 6
符串字面量 :'大前端' , '黑客'
布尔字面量 : true false
注释
源码中被 JavaScript 引擎忽略的部分就叫做注释,它的作用是对代码进行解释。Javascript 提供两种注释的写法:一种是单行注释,用//起头;另一种是多行注释,放在/*和*/之间。
// 这是单行注释 crtl + /
/*
这是多行注释 Alt + Shift + A
*/
转义符
\b 代表退格。
\t 代表一个制表符,即一个Tab空格。
\n 换行回车。
\v 垂直的制表符。
\r 回车。
\" 双引号。
\' 单引号。
\\ 反斜线 , 即 \ 。
以上的内容均来自 个人学习笔记,此文最终解释权归本人所有!