每日一道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 打印出来是什么吗?我们下篇文章见,拜拜!!!
相关文章
|
6天前
|
自然语言处理 JavaScript 前端开发
三个JavaScript面试题
摘要: - 闭包是JavaScript函数能记住词法作用域,即使在外部执行。示例:计数器函数`createCounter()`返回访问`count`的匿名函数,每次调用计数递增。 - 事件循环处理异步操作,通过检查任务队列执行回调。示例:`setTimeout`异步任务在3秒后添加到队列,待执行,输出顺序为同步任务1、2,然后异步任务1。 - 箭头函数是ES6简洁的函数定义方式,如`greet = name => `Hello, ${name}!`。它没有自己的`this`,不适用作构造函数。
25 6
|
15天前
|
存储 JavaScript 前端开发
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
|
15天前
|
存储 JavaScript 前端开发
每日一道javascript面试题(八)你真的知道了解const吗
每日一道javascript面试题(八)你真的知道了解const吗
|
15天前
|
JavaScript 前端开发
每日一道javascript面试题(七)你真的知道箭头函数吗
每日一道javascript面试题(七)你真的知道箭头函数吗
|
15天前
|
JavaScript 前端开发
每日一道javascript面试题(五)
每日一道javascript面试题(五)
每日一道javascript面试题(五)
|
15天前
|
前端开发 JavaScript
每日一道javascript面试题(三)
每日一道javascript面试题(三)
|
15天前
|
JavaScript 前端开发
每日一道javascript面试题(二)
每日一道javascript面试题(二)
每日一道javascript面试题(二)
|
15天前
|
JavaScript 前端开发
每日一道javascript面试题(一)
每日一道javascript面试题(一)
|
27天前
|
前端开发 JavaScript 测试技术
「一劳永逸」送你21道高频JavaScript手写面试题(下)
「一劳永逸」送你21道高频JavaScript手写面试题
26 0