引入
和许多编程语言一样,JS的变量也是一个可以等同为方程或者函数中那个“可变化的量”——X。
不过在计算机的世界里,变量可以不仅仅是数字
他可以包含我们上期提到的所有的数据类型。变量短暂存储了我们中间过程中所有的量,也正是由这些变量,我们构建出了当今这个丰富多彩的计算机世界……
本期我们就一起来看看如何定义变量,包括申明、赋值、strict模式
1. 变量的申明
JavaScript中变量是用一个变量名表示的,这个变量名的命名规则是
可以是大小写英文、数字、$
和_
的组合。但不能以数字开头,也不能是JavaScript自带的保留字(也有人称为是关键字),如if、while等
符合以上条件的字符都可以是变量名。我们直接可以用var语句来申明一个变量——
var a; // 申明了变量a
我们用上面的语句就成功申明了一个变量a。但我们要注意,因为此时我们没有给a任何的值,所以此时a的值为undefined。既不是0也不是""(空字符串)
2. 变量的赋值
在JavaScript中,我们同其他编程语言一样,使用等号=
给变量进行赋值。赋值规则是从右往左,即左边是变量名,右边是对应的值。我们可以把任意数据类型赋值给变量,且同一个变量可以反复赋值,并且和Python很像,重复赋值的可以是不同类型的变量,(不像C语言,变量数据类型是固定的)
var a = 100; // a的值是100,整数型 a = 'ABC'; // a变为字符串ABC
注意只能用var
申明一次
我们把这类可以赋值不同数据类型给同一个变量的语言叫动态语言,C和JAVA这类变量本身数据类型固定的语言就是静态语言了
3. strict模式
有人说,同样是动态语言,Python直接赋值就可以了,都不用var之类的申明变量,JS可以这样吗?
很可惜,答案是可以的
为什么说是很可惜?因为JavaScript中如果不进行var申明就直接赋值,该变量就会被申明为全局变量——而JS是写前端的,如果你在一个页面的不同文件上不申明变量,那他们都会被定义为全局变量,这些全局变量会相互冲突,造成程序错误。
而用var申明的变量则会被限制住(一般限制在当前函数内),这样就可以减少冲突发生的可能性
所以JS官方出了一个strict模式,让使用者强制自己每个变量都用var申明过,否则会导致程序出错
启用这个模式的方法就是在JS第一行写上
'use strict'
但是要注意了,这里我们写的是一个字符串,有些低版本的浏览器会把它当做一个字符串执行,所以……
对前端人来说,要求配适所有浏览器可是比扣钱还恐怖