在我们学习变量声明的三个关键字前,我们想了解一些基础知识。
如下我们声明了一个名为test的变量,其变量内容是 '第一个'。其实质是以二进制,如"010101"开辟了一个内存地址。当我们想使用这个变量的内容的时候,通过调用变量名test来实现。
var test = '第一个'
console.log(test) // '第一个'
思考🤔变量名可以是$
符号吗?
当然可以,JQuery就是用的$
符号,我们回顾一下变量的命名:可以是数字、字母、下划线和$
符号。但不能以数字开头。
var $ = 123;
console.log($) //123
先声明,后赋值
var stage;
stage = '12'
同时声明多个
var a = 'aa',b='bb',c='cc';
console.table(a,b,c)
一个值赋值给多个变量
var d = e = f ='same'
console.log(d,e,f)
不像Java一样,只需要用关键字 var/let/const 声明变量。
var web = 'hdfs';
console.log(typeof web);
var num = 12;
console.log(typeof num);
var ob = {'name':'yy'}
console.log(typeof ob)
class作为js的保留字,是不可以作为变量名使用的,并且会报错。
如下,我们在声明class变量之前,声明一个变量web,并且打印出来。
var web = 'http';
console.log(web)
var class = 'dass';
但是它并不会打印,因为class的报错。
这是因为,代码编译之前解析器会将代码从上到下分析一遍,在分析的过程就进行了变量提升
问题来了,在我们没声明变量前,就使用了这个变量。会报错吗?
答案是,不会,可以正常的使用。同样是因为变量提升。
console.log(first)
var first = 'first';
定义一个变量有声明和赋值两步骤
此时执行,它相当于把 var first = 'first'; 拆分成var first;
和 first = 'first'。
并且把 var first;放到了console.log()之前。
var first;
console.log(first)
first = 'first';
如下代码中,因为执行 var web = 'this is a';
的条件是 false,所以一直都不会进入这个判断中。
function change(){
if(false){
var web = 'this is a';
}
console.log(web)
}
change()
会打印出undefined
那么,当我们把 var web = 'this is a';
注释之后。就会发现如下报错。