JavaScript 变量
变量是用于存储信息的"容器"。
就像代数那样
x=5
y=6
z=x+y
在代数中 使用字母(比如 x)来保存值(比如 5)。
通过上面的表达式 z=x+y 能够计算出 z 的值为 11。
在 JavaScript 中 这些字母被称为变量。
![]() | 您可以把变量看做存储数据的容器。 |
---|
JavaScript 变量
与代数一样 JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)。
变量可以使用短名称(比如 x 和 y) 也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
- 变量必须以字母开头
- 变量也能以 $ 和 _ 符号开头(不过不推荐这么做)
- 变量名称对大小写敏感(y 和 Y 是不同的变量)
![]() | JavaScript 语句和 JavaScript 变量都对大小写敏感。 |
---|
JavaScript 数据类型
JavaScript 变量还能保存其他数据类型 比如文本值 (name="Bill Gates")。
在 JavaScript 中 类似 "Bill Gates" 这样一条文本被称为字符串。
JavaScript 变量有很多种类型 但是现在 只关注数字和字符串。
当您向变量分配文本值时 应该用双引号或单引号包围这个值。
当您向变量赋的值是数值时 不要使用引号。如果您用引号包围数值 该值会被作为文本来处理。
声明(创建) JavaScript 变量
在 JavaScript 中创建变量通常称为"声明"变量。
使用 var 关键词来声明变量:
变量声明之后 该变量是空的(它没有值)。
如需向变量赋值 请使用等号:
不过 您也可以在声明变量时对其赋值:
在下面的例子中 创建了名为 carname 的变量 并向其赋值 "Volvo" 然后把它放入 id="demo" 的 HTML 段落中:
![]() | 一个好的编程习惯是 在代码开始处 统一对需要的变量进行声明。 |
---|
一条语句 多个变量
您可以在一条语句中声明很多变量。该语句以 var 开头 并使用逗号分隔变量即可:
声明也可横跨多行:
age=30,
job="carpenter";
一条语句中声明的多个不可以赋同一个值:
x,y 为 undefined z 为 1。
Value = undefined
在计算机程序中 经常会声明无值的变量。未使用值来声明的变量 其值实际上是 undefined。
在执行过以下语句后 变量 carname 的值将是 undefined:
重新声明 JavaScript 变量
如果重新声明 JavaScript 变量 该变量的值不会丢失:
在以下两条语句执行后 变量 carname 的值依然是 "Volvo":
var carname;
JavaScript 算数
您可以通过 JavaScript 变量来做算数 使用的是 = 和 + 这类运算符:
您将在本文稍后的章节学到更多有关 JavaScript 运算符的知识。
文人墨客
JavaScript 允许重复声明变量,后声明的覆盖之前的
JavaScript 允许重复定义函数
JavaScript 没有重载这个概念,它仅依据函数名来区分函数。
后定义的同名函数覆盖之前的,与参数无关。
实参个数如果比形参少,那么剩下的默认赋值为 undefined,如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用 arguments 来获取剩下的参数)。
变量与函数重名的时候,变量生效
这涉及到了变量和函数的预解析:
JS 中有两种函数,一种是普通函数,一种是函数对象。下面的这种就是“函数对象”,它实际上是声明一个匿名函数,然后将该函数的 init 方法赋值给该变量。
函数与内部变量重名
定义普通函数,即在 window 变量下,定义一个 key,它的名字为该函数名,值为该函数的地址。函数内部的 this 指向 window 对象。
文人墨客
看书的时候会有一个“字面量”的概念,初学不是很好理解。
字面量(literal)用于表达源代码中一个固定值的表示法(notation),整数、浮点数以及字符串等等都是字面量。
示例:
又如:
总之,字面量就是没有用标识符封装起来的量,是“值”的原始状态。
与常量的区别如下:
文人墨客
const 关键字用来声明 JavaScript中的常量(与变量相对,不可修改,但同样是用于存储信息的"容器"。),常量的值不能通过重新赋值来改变,并且不能重新声明。
代码:
文人墨客
Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的。可以正常运行的代码并不代表是合适的代码。
文人墨客
介绍JS中的let变量:
let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。在Function中局部变量推荐使用let变量,避免变量名冲突。
作用域规则
let 声明的变量只在其声明的块或子块中可用,这一点,与var相似。二者之间最主要的区别在于var声明的变量的作用域是整个封闭函数。