`
liukemin
  • 浏览: 8281 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于js解析执行有趣的事

阅读更多

前些天总监在群里发了两段代码:

 

var foo = 1;  
function bar() {  
    if (!foo) {  
        var foo = 10;  
    }  
    alert(foo);  
}  
bar();  

 

 

 

var a = 1;  
function b() {  
    a = 10;  
    return;  
    function a() {}  
}  
b();  
alert(a);  

 

 

不测试,大家看输出的是什么?

分享到:
评论
3 楼 hwhoho2010 2012-06-25  
这个很有意思啊,呵呵 除了预编译,还有闭包的概念在里面

对于第一个例子,在预编译bar期间,由于foo还是undefined的,所以执行了var foo = 10;这句话,而var foo就变成了函数bar的局部变量,之前定义的foo是全局变量。所以你在执行bar()时,打印的是局部变量foo(即 foo=10)而不是全局变量foo = 1
对于第二个例子,意思差不多,不过这次不但改变了a为局部变量,而且连a的类型也改了
2 楼 liukemin 2012-06-18  
rimoer 写道
试了,谁知道,来解释下...

http://liukemin.iteye.com/blog/1562948 看这篇文章
1 楼 rimoer 2012-06-18  
试了,谁知道,来解释下...

相关推荐

    关于在innerHTML中JS不执行的问题

    这就是为什么在`innerHTML`中插入的JS代码不执行的原因。 为了解决这个问题,我们可以采用以下几种方法: 1. **使用`document.createElement`和`element.appendChild`**:这种方法创建和操作DOM元素是安全的,因为...

    smt-antlr4-javascript-parser:该项目在构建时将生成 ANTLR4 JavaScript 解析类

    使用ANTLR4生成JavaScript解析类的好处在于,它可以处理复杂的语言结构,同时提供了丰富的错误处理机制。这使得开发者能够专注于他们的应用程序逻辑,而不是解析细节。此外,ANTLR4是开源的,拥有活跃的社区支持,这...

    javascript从定义到执行 你不知道的那些事

    在JavaScript编程中,从定义到执行的过程涉及多个关键概念,这些概念构成了JS引擎的基础工作原理。本文将详细解释这些概念,并通过一个简单的示例来阐述它们在实际执行中的作用。 首先,我们要了解的是执行环境栈...

    js代码-JS执行机制

    JS执行机制是理解其工作原理的关键,它涉及到解析、编译、事件循环和调用栈等多个核心概念。 首先,我们要了解的是JS的解析过程。当浏览器遇到JS代码时,它会通过词法分析器将源代码转化为一系列的词法单元,也就是...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(9):根本没有“JSON对象”这回事 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇) 深入理解JavaScript系列(11):执行上下文(Execution Contexts) 深入理解...

    深入理解JavaScript系列

    深入理解JavaScript系列(3):全面解析Module模式 深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S.O.L.I.D五大原则之...

    关于Java和Python爬虫那些事儿.zip

    本压缩包文件“关于Java和Python爬虫那些事儿.zip”可能包含与使用Java和Python这两种语言进行网络爬虫相关的教程、代码示例或资源。尽管描述中只提到了“python”,但标题暗示了内容可能涵盖两种语言。 首先,让...

    JavaScript单线程和任务队列原理解析

    这篇文章主要介绍了JavaScript单线程和任务队列原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、JavaScript为什么设计为单线程? JavaScript语言的...

    火山安卓JSON数据解析.rar

    由于JSON解析通常涉及网络操作,应尽量在后台线程执行,以避免阻塞UI线程。可以使用AsyncTask、IntentService或现代的LiveData和ViewModel架构组件来实现异步处理。 10. 错误处理: 在解析过程中可能会遇到格式...

    深入理解JavaScript系列.chm

    3.全面解析Module模式 4.立即调用的函数表达式 5.强大的原型和原型链 6.S.O.L.I.D五大原则之单一职责SRP 7.S.O.L.I.D五大原则之开闭原则OCP 8.S.O.L.I.D五大原则之里氏替换原则LSP 9.根本没有“JSON对象”这回事! ...

    Native 与 H5 交互的那些事1

    例如,当JS需要调用Native方法时,可以通过`prompt`传递请求,然后在Android端的`onJsPrompt()`回调中解析请求并执行相应操作。 7. **协议设计**: - Js与Native交互的协议设计至关重要,它决定了数据如何在两者间...

    javascript笔记 String类replace函数的一些事.docx

    ### JavaScript中的`String.prototype.replace`方法详解 #### 一、`replace`方法的基本用法 在JavaScript中,`String.prototype.replace`是一个非常重要的方法,用于替换字符串中的某些部分。其基本语法如下: ``...

    Jquery 在页面加载后执行的几种方式

    jQuery作为流行的JavaScript库,提供了多种方式来实现页面加载后执行代码的功能。以下是几种常见的使用jQuery在页面加载后执行代码的方法,以及它们的工作原理和适用场景。 首先,最常见的一种方式是使用`$...

    JavaScript中关于base64的一些事

    然而,需要注意的是,不是所有的JavaScript环境都支持这两个函数,特别是较老的浏览器或者Node.js环境。对于不支持`atob()`和`btoa()`的环境,可以通过第三方库如`js-base64`或使用Node.js的`Buffer`对象来实现Base...

    JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法

    ### 实例解析 通过一个具体的示例,我们可以更好地理解上述执行顺序: ```javascript var btn = document.querySelector('button'); var div = document.querySelector('div'); btn.addEventListener('click', ...

    javascript全程指南

    JavaScript是一种广泛应用于Web开发的脚本语言,它在浏览器端运行,为网页添加交互性,使静态内容变得生动有趣。作为初学者,理解JavaScript的基本语法、数据类型、控制结构、函数以及面向对象编程的概念是至关重要...

    javascript入门笔记

    Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发...

Global site tag (gtag.js) - Google Analytics