JS 核心语言基础语法 之 变量的相关知识
变量是啥:变量就是你给某个值起的名字,当你想要用这个值得时候,就叫这个名字。跟人一样,宝宝出生了,你不能总叫它宝宝吧,宝宝上学了,一个班级都是宝宝?没办法称呼区分啊,所以人要有名字啊,老师点名“张三”,叫张三的这个人就站起来了。js变量也是这个意思。
变量声明,要用到关键字var,比如var age = 18;这条语句,var用于声明变量,紧跟着就是变量名字age,等于号后面是变量的值18。导图中说,如果声明变量的时候不用var,那这个变量就会变成全局变量。说到变量,就得提一下作用域的概念。
作用域,就是变量起作用的范围。作用域有全局作用域和函数作用域(又叫局部作用域),对应的变量的就是全局变量和局部变量,全局作用域下的全局变量,在整个js文件都生效,简言之就是都能访问到,函数作用域对应的是局部变量,也就是整个变量只能在函数体内能访问到,外面就访问不到这个变量了,想学js不知道啥时函数的时候,最简单的方法,就是{},在{}里的变量,只在花括号里生效,在外面访问不到,当然,这个变量是使用var声明了的~
途中我们可以看到,变量名等于号后面跟的就是变量的值,这一步骤,我们称之为赋值,如果不赋值呢,只是声明了一个变量名呢,那这个变量等于啥,它等于undefined,就是未定义。
变量命名:这里主要记住命名规范,驼峰式命名,前一节有说到哦~
变量提升,这是一个很重要的概念,要理解这个概念,得先了解js的运行机制。js是怎么运行的呢?它是从上到下,一行一行的先解析,获取到所有声明了的变量,然后再一行一行的运行,大家看下面这个例子(简单的代码,我就不再编辑器里敲了,直接打开Chrome,在控制台里敲~):
上面截图的代码,我们在声明变量a之前,先打印了a,按理说打印a的时候,a不存在啊,应该报错的啊,但是并没有,打印的结果是undefined,为什么呢,就是因为变量提升,js在运行的时候,先看一看,都声明了哪些变量,然后呢把这些变量都放在前面去,js知道我们声明了a,但是没有走到赋值那步,看下面的代码:
看上面的代码,观察我打印了两遍的结果,第一遍,a变量提升了,但是没有赋值呢,值为undefined,第二遍,赋值完成了,a等于111。大家能理解不?
- 点赞
- 收藏
- 关注作者
评论(0)