每日一道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 打印出来是什么吗?我们下篇文章见,拜拜!!!
相关文章
|
3月前
|
自然语言处理 JavaScript 前端开发
当面试官再问我JS闭包时,我能答出来的都在这里了。
闭包(Closure)是前端面试中的高频考点,广泛应用于函数式编程中。它不仅指函数内部定义的函数,还涉及内存管理、作用域链和垃圾回收机制。闭包可以让函数访问其外部作用域的变量,但也可能引发内存泄漏等问题。通过合理使用闭包,可以实现模块化、高阶函数和回调函数等应用场景。然而,滥用闭包可能导致代码复杂度增加、调试困难以及潜在的性能问题。为了避免这些问题,开发时应谨慎处理闭包,避免不必要的嵌套,并及时清理不再使用的变量和监听器。
158 16
当面试官再问我JS闭包时,我能答出来的都在这里了。
|
3月前
|
JavaScript 前端开发 安全
【JavaScript】深入理解 let、var 和 const
掌握这些关键字的使用可以提高代码的可读性和可维护性,避免潜在的变量提升和作用域问题。希望本文能帮助您更好地理解和应用 JavaScript 中的变量声明方式,编写出更高质量的代码。
96 20
|
8月前
|
JSON JavaScript 前端开发
Javascript基础 86个面试题汇总 (附答案)
该文章汇总了JavaScript的基础面试题及其答案,涵盖了JavaScript的核心概念、特性以及常见的面试问题。
141 3
|
8月前
|
前端开发 JavaScript
JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
|
9月前
|
JavaScript 前端开发
常见的JS面试题
【8月更文挑战第5天】 常见的JS面试题
101 3
|
9月前
|
JavaScript 前端开发 开发者
|
6月前
|
JSON JavaScript 前端开发
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
本文介绍了JSONP的工作原理及其在解决跨域请求中的应用。首先解释了同源策略的概念,然后通过多个示例详细阐述了JSONP如何通过动态解释服务端返回的JavaScript脚本来实现跨域数据交互。文章还探讨了使用jQuery的`$.ajax`方法封装JSONP请求的方式,并提供了具体的代码示例。最后,通过一个更复杂的示例展示了如何处理JSON格式的响应数据。
118 2
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
|
9月前
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
164 57
|
7月前
|
JavaScript 前端开发
【JavaScript】let,const和var的区别
总的来说,随着ECMAScript 6(ES6)及后续版本的推广,`let`和 `const`因其增强的块级作用域和对变量行为的更严格控制,逐渐成为现代JavaScript编码实践中推荐使用的变量声明方式。而 `var`由于其历史遗留的局限性,正逐渐被边缘化,但在维护老代码或处理特定兼容性需求时仍需了解。
96 3
|
7月前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题

热门文章

最新文章