`
ariyue
  • 浏览: 346225 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JavaScript面试的忽悠题

阅读更多
<script type="text/javascript">
var x = 1;
var y = 0;
var z = 0;
function add(n){n=n+1;}
y = add(x);
function add(n){n=n+3;}
z = add(x);
s=y+z;
</script>

求:
y的值是?
z 的值是?
s的值是?

我相信,肯定有同学会答错,当然,不是说他们不会,而是他们可能太大意了!

我们首先看function add,两个add都没有返回值,而我们知道,没有明确返回值的,全部返回undefined,所以,y和z都会是undefined,那么s自然也就不会是一个数字了,没错,s应该是NaN。

假如我们将题目改一下呢?如下:
<script type="text/javascript">
var x = 1;
var y = 0;
var z = 0;
function add(n){return n=n+1;}
y = add(x);
function add(n){return n=n+3;}
z = add(x);
s=y+z;
</script>

两个function add都有返回值了,那么,y,z,s会是多少呢?
不错,y和z都是4,s是8,为什么y不是2而是4呢?因为在javascript中,直接通过function申明的函数,后面定义的,会影响到之前的引用,如下:

<script type="text/javascript">
function x(){alert(2)};
x();//output 3
function x(){alert(3)};
x();//output 3
</script>

如果是通过var来申明的函数会是什么情况呢?我们看看:

<script type="text/javascript">
var x = function(){alert(0)};
x();//output 0
var x=function(){alert(1)};
x();//output 1
x();//output 1
</script>

通过var申明的函数,后面定义的并不会影响前面的引用。

如果两种模式混合,又会是什么情况呢?

<script type="text/javascript">
function x(){alert(2)};
x();//output 3
var x = function(){alert(0)};
x();//output 0
var x=function(){alert(1)};
x();//output 1
function x(){alert(3)};
x();//output 1
</script>

结果是这样的,你猜到了吗?

通过function定义的函数,后面定义的,照旧影响了前面的引用,但是不能改变通过var申明函数后的引用,反而,通过var申明的函数,改变了后来通过function申明函数之后的引用。

所以,如果:
<script type="text/javascript">
var x=function(){alert(1)};
x();
function x(){alert(3)};
x();
</script>
后面的x()出来的也会是1。
分享到:
评论

相关推荐

    JavaScript常见面试题.pdf

    JavaScript常见面试题

    JavaScript面试题集锦

    "JavaScript面试题集锦详解" 这篇文章涵盖了JavaScript的多个方面,包括eval函数、window和document对象、null和undefined的区别、数组的map方法、事件机制、use strict模式等。 eval函数 eval函数可以将字符串...

    大公司javaScript经典面试题汇总(含答案).pdf

    大公司javaScript经典面试题汇总

    JavaScript面试题,JS面试题,WEB前端面试题下载.pdf

    JavaScript 面试题知识点总结 JavaScript 面试题是前端开发领域中常见的面试题,涵盖了 JavaScript 基础、Web 前端开发等方面的知识点。本文将对 JavaScript 面试题的知识点进行总结,包括 Object.create、...

    javascript的经典面试题汇总

    根据给定的信息,我们将深入分析并提取出与JavaScript面试题相关的知识点。 ### 一、单选题 #### 1. 以下哪条语句会产生运行错误: - **选项A**: `var obj = ();` - **解析**:在JavaScript中,括号`()`通常用于...

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题

    Java面试题、设计模式面试题、Spring面试题、MyBatis面试题、Memcached面试题、MongoDB面试题、ZooKeepe面试题、RabbitMQ面试题、HTML面试题、CSS面试题、Vue面试题、React面试题、JavaScript面试题、2021java面试题...

    JavaScript面试题及答案-共60道.docx

    JavaScript面试题及答案-共60道.docx JavaScript面试题及答案-共60道.docx JavaScript面试题及答案-共60道.docx JavaScript面试题及答案-共60道.docx JavaScript面试题及答案-共60道.docx JavaScript面试题及答案-共...

    百度javascript前端面试题

    百度JavaScript前端面试题总结 本文总结了百度前端JavaScript面试题,涵盖了多个知识点,包括左定右自适应布局、GetPosition方法、模拟fadeIn和fadeOut、call和apply的区别和应用场景、创建a标签点击弹出对应序号、...

    面试题练习题前端 JavaScript高级语法-字符串属性

    面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端...

    一套完整的javascript面试题(含有答案)

    JavaScript是一种广泛应用于Web开发的...以上是对这套JavaScript面试题的解析,涵盖的知识点全面,适合准备JavaScript面试的开发者进行自我检测和学习。理解并掌握这些知识点,对于提升JavaScript编程能力大有裨益。

    javaScript面试题

    面试中,JavaScript 的知识点涵盖了许多方面,以下是一些常见的问题及其解答: 1. **typeof 返回的数据类型** JavaScript 的 `typeof` 操作符可以返回一个变量的数据类型,包括 `string`, `boolean`, `number`, `...

    JavaScript常见面试题共41页.pdf.zip

    这份名为“JavaScript常见面试题共41页.pdf”的压缩文件,显然包含了41页关于JavaScript面试的常见问题和解答,旨在帮助求职者准备技术面试。从标签“JavaScript常见面试题共”可以看出,它涵盖了JavaScript的基础...

    JavaScript 43道面试题和答案(2025最新版).docx

    JavaScript 43道面试题和答案(2025最新版)

    javaScript面试题大全共6页.pdf.zip

    这份"javaScript面试题大全共6页.pdf.zip"压缩包包含了六页的JavaScript面试题目,旨在帮助求职者准备JavaScript相关的技术面试。标签"javaScript面试题大全共"强调了其核心内容——JavaScript的面试问题集合。 在...

    JavaScript面试题大全.rar

    JavaScript面试题大全.rar

    人人网javascript面试题

    人人网作为知名的社交网络平台,其面试题往往能反映出业界对JavaScript开发者技能的要求。以下将根据提供的信息,详细阐述JavaScript面试题可能涉及的知识点,并给出相应的实现思路。 1. **变量声明与作用域** - *...

    前端JavaScript面试题集详解

    内容概要:本文档包含了大量前端JavaScript面试问题及答案,旨在帮助前端开发者准备JavaScript相关的工作和技术面试。主要内容围绕语法知识点、常见问题的解决方案、性能优化等方面。 适用人群:面向具有一定...

    JavaScript最新面试题,2021年面试题及答案汇总.md

    JavaScript最新面试题,2021年面试题及答案汇总.md

    2024高频前端面试题 JavaScript

    这篇文章为面试者提供了关于JavaScript常考面试题的详细解析。文章内容包括JavaScript基础概念、语法和概念、DOM操作、高级特性以及常见面试题及解答。文章旨在帮助面试者更好地准备JavaScript相关的面试,提高对...

Global site tag (gtag.js) - Google Analytics