这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战
这期是一篇基础的知识点-变量,但是不要小瞧最基本的知识,接下来咱们通过几个问题一起来了解一下变量吧~
在学习变量之前,首先要明白JavaScript 是一门弱类型语言,变量的类型是由变量的值决定的
弱类型语言的优缺点
优点:使用灵活,简化了代码编写
缺点:执行效率低,在开发大型应用时,程序性能会受到影响
什么是变量?变量是用来干什么的?
变量是用来保存信息的地址(容器),变量可以在程序中保存某个值
var result = 1
var str = '2'
通过变量算数(适用于加减乘除)
var a = 1
var b = 2
var c = a + b
声明多个变量
可以在一条语句声明多个变量,以var开头,以,分割
var a = 1, b = 2;
也可分行
var a = 1,
b = 2;
一条语句中的多个变量不可以同时赋同一个值
var a,b,c = 1
a和b为undefined,c为1
声明变量的规则
变量必须以字母开头
变量也能以 $ 和 _ 符号开头(不推荐)
变量不能以数字开头
不能是javascript中的关键字和保留字,如:if,else,function等
要有语义化,方便别人阅读代码(非强制)
使用驼峰命名法:从第二个单词开始,首字母大写,(非强制)
变量名称对大小写敏感(a !== A)
全局变量
在函数外声明的变量作用域是全局的
var a = 1
function test() {}
上边代码中,在test函数内部和外部都可以使用变量a,
不具备块级作用域
使用var声明的变量不具备块级作用域,在作用域外也能被访问,
{
var a = 1
}
ES6 之前,是没有块级作用域这个概念的,下一篇我们会基于变量来扩展一些与变量有关的知识
变量提升
- 函数及变量的声明都将被提升到函数的最顶部
- 变量可以在使用后声明,也就是变量可以先使用再声明
- 只有声明的变量会提升,初始化的不会
- 在非严格模式下,JavaScript 允许不声明变量就直接为其赋值,这是因为 JavaScript 解释器能够自动隐式声明变量。隐式声明的变量总是作为全局变量使用。在严格模式下,变量必须先声明,然后才能使用。