每日一道javascript面试题(六)有var和无var

简介: 每日一道javascript面试题(六)有var和无var

前言

  • 我是小嘟,努力每天分享一道javascript相关的题目。
  • 希望对你有所帮助。
  • 觉得有用的话,请点赞支持,你的鼓励是我坚持下去的动力。


题目一

var a = 100;//key1
function number01(){
   console.log(a);//undefined ,打印的是key2处的a
   var a = 10;//key2
   console.log(a);//10
}
number01();
console.log(a);//100


运行结果

代码分析


我们发现,本题中,我们用var’声明了两次变量a,这个题的考点就是变量提升,我们知道var类型的变量会提升,那么提升到哪里呢?

答:提升到当前作用域的顶部,在本题中,我们有全局作用域和函数作用域两部分,函数中的a变量会提升到函数作用域的最顶部,所以在它之前访问则会打印undefined(它是 undefind 类型),其他两个比较简单,小嘟不在多说。

我们在看另一个例子

题目二

var a = 100;
function number02(){
   console.log(a);//100
   a = 10;
   console.log(a);//10
}
number02();
console.log(a);//10

运行结果

代码分析

  • 这个小嘟只提一点:如果没有明确指明某个变量是什么类型,那么它就会被当做全局变量

嘟嘟小课堂

  • 你知道 typeof typeof null 打印出来是什么吗?我们下篇文章见,拜拜!!!
相关文章
|
24天前
|
JavaScript 前端开发 开发者
JavaScript的变量提升是一种编译阶段的行为,它将`var`声明的变量和函数声明移至作用域顶部。
【6月更文挑战第27天】JavaScript的变量提升是一种编译阶段的行为,它将`var`声明的变量和函数声明移至作用域顶部。变量默认值为`undefined`,函数则整体提升。`let`和`const`不在提升范围内,存在暂时性死区。现代实践推荐明确声明位置以减少误解。
23 2
|
23天前
|
JavaScript 前端开发
JavaScript中的var变量详解:定义、提升与注意事项
JavaScript中的var变量详解:定义、提升与注意事项
15 2
|
26天前
|
JavaScript 前端开发
JavaScript中的变量提升(Hoisting)将`var`声明和函数声明提前到作用域顶部,允许在声明前使用
【6月更文挑战第25天】JavaScript中的变量提升(Hoisting)将`var`声明和函数声明提前到作用域顶部,允许在声明前使用。`let`和`const`不完全提升,存在暂时性死区(TDZ),尝试在初始化前访问会出错。函数声明会被提升,但函数表达式不会。
19 3
|
29天前
|
JavaScript 前端开发
JavaScript语法关键点:变量用`var`、`let`、`const`声明
【6月更文挑战第22天】JavaScript语法关键点:变量用`var`、`let`、`const`声明;七种数据类型包括`Number`、`String`、`Boolean`、`Null`、`Undefined`、`Symbol`和`Object`;运算符如算术、比较、逻辑和赋值;流程控制有`if...else`、`switch`和各种循环。了解这些是JS编程的基础。
32 3
|
15天前
|
JavaScript
JS【详解】setTimeout 延时(含清除 setTimeout,计时开始时间,0 秒延时解析,多 setTimeout 执行顺序,setTimeout 应用场景,网红面试题)
JS【详解】setTimeout 延时(含清除 setTimeout,计时开始时间,0 秒延时解析,多 setTimeout 执行顺序,setTimeout 应用场景,网红面试题)
32 0
|
18天前
|
JavaScript 前端开发
|
18天前
|
存储 JavaScript 前端开发
面试官:JS中变量定义时内存有什么变化?
面试官:JS中变量定义时内存有什么变化?
14 0
|
18天前
|
JavaScript 前端开发
JS进阶篇(前端面试题整合)(三)
JS进阶篇(前端面试题整合)(三)
14 0
|
2月前
|
JavaScript
分享经典面试题:JS数组去重的多种方法
分享经典面试题:JS数组去重的多种方法
|
2月前
|
JavaScript 前端开发 程序员
web前端入门到实战:32道常见的js面试题(1),面试哪些
web前端入门到实战:32道常见的js面试题(1),面试哪些