变量声明
Q:声明分类有哪几种?
- A:var声明、let与const声明和函数声明。
Q:变量声明与函数声明变量名相同,谁会生效?
A:函数声明高于一切
javascriptfoo(); function foo() { console.log('foo');//foo } var foo = 2;
Q:多个函数声明同一个变量名,谁会生效?
A:有多个函数声明的时候,是由最后面的函数声明来替代前面的
javascriptfoo(); function foo() { console.log('1'); } function foo() { console.log('2');//输出 }
Q:声明变量时发生了什么?
A:干了两件事
- 编译器在当前作用域中声明一个变量
xxx - 运行时引擎在作用域中查找该变量,找到了
xxx变量并为其赋值
javascriptvar name = 'iceman' //实际上发生了两件事 var name=undefinded; name='iceman';- 编译器在当前作用域中声明一个变量
Q:use strict状态下,变量不声明会发生什么?
A:将抛出一个引用错误
ReferenceError。javascriptfunction getAge() { 'use strict' age = 21 console.log(age)//ReferenceError } getAge()
Q:使用var多次声明同一个变量,谁会生效?
A:使用
var关键字,你可以用相同的名称声明多个变量。然后变量将保存最新的值。javascriptvar num = 8 var num = 10 console.log(num)//10