`
tapestry
  • 浏览: 189081 次
社区版块
存档分类
最新评论

javascipt scope

阅读更多

From Apress ProJavaScriptTechniques

In JavaScript, scope is kept within functions, but not within blocks (such as while, if, and for statements).

js 代码
 
  1. // Set a global variable, foo, equal to test  
  2. var foo = "test";  
  3. // Within an if block  
  4. if ( true ) {  
  5. // Set foo equal to 'new test'  
  6. // NOTE: This is still within the global scope!  
  7. var foo = "new test";  
  8. }  
  9. // As we can see here, as foo is now equal to 'new test'  
  10. alert( foo == "new test" );  
  11. // Create a function that will modify the variable foo  
  12. function test() {  
  13. var foo = "old test";  
  14. }  
  15. // However, when called, 'foo' remains within the scope  
  16. // of the function  
  17. test();  
  18. // Which is confirmed, as foo is still equal to 'new test'  
  19. alert( foo == "new test" );  

An interesting aspect of browser-based JavaScript is that all globally scoped variables are actually just properties
of the window object.

js 代码
  1. // A globally-scoped variable, containing the string 'test'   
  2. var test = "test";   
  3. // You'll notice that our 'global' variable and the test   
  4. // property of the the window object are identical   
  5. alert( window.test == test );  

In Listing 2-12 a value is assigned to a variable (foo) within the scope of the test() function. However, nowhere in Listing 2-12 is the scope of the variable actually declared (using var foo). When the foo variable isn’t explicitly defined, it will become defined globally, even though it is only used within the context of the function scope.

Listing 2-12

js 代码
  1. // A function in which the value of foo is set   
  2. function test() {   
  3. foo = "test";   
  4. }   
  5. // Call the function to set the value of foo   
  6. test();   
  7. // We see that foo is now globally scoped   
  8. alert( window.foo == "test" );  
分享到:
评论

相关推荐

    JavaScript scope chain

    Study note on scope chain in JavaScript

    深究AngularJS—如何获取input的焦点(自定义指令)

    2. **配置指令**:在定义函数内,我们可以配置指令的属性,如`restrict`, `scope`, `link`等。`restrict`通常设置为`A`表示属性指令,这样我们可以在HTML元素上通过`focus-input`来使用它。 ```javascript return { ...

    AngularJS 自定义指令 - ECharts 2 柱状图

    ECharts 是一个基于 JavaScript 的数据可视化库,它提供了丰富的图表类型,包括柱状图、折线图、饼图等。AngularJS 是一个强大的前端框架,通过其自定义指令功能,我们可以轻松地复用和封装组件。 首先,我们需要...

    What-is-Scope.pdf.zip_javascript

    "What-is-Scope.pdf.zip"是一个压缩包文件,其中包含了一份详细讲解JavaScript作用域的PDF文档——"What is Scope.pdf"。本文将对JavaScript作用域进行深入解析。 1. **作用域定义** 作用域是编程语言中用于规定...

    面向对象的_JavaScript_编程及其_Scope_处理

    ### 面向对象的JavaScript编程及其Scope处理 #### 一、JavaScript的面向对象特性 JavaScript作为一种弱类型的脚本语言,虽然本质上不是一种面向对象的语言,但我们可以通过巧妙地利用其特性来实现面向对象编程...

    深入理解JavaScript系列

    深入理解JavaScript系列(14):作用域链(Scope Chain) 深入理解JavaScript系列(15):函数(Functions) 深入理解JavaScript系列(16):闭包(Closures) 深入理解JavaScript系列(17):面向对象编程之一般...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(14):作用域链 Scope Chain 深入理解JavaScript系列(15):函数(Functions) 深入理解JavaScript系列(16):闭包(Closures) 深入理解JavaScript系列(17):面向对象编程之一般...

    javascript作用域链(Scope Chain)初探.docx

    ### JavaScript作用域链(Scope Chain)初探 #### 一、引言 JavaScript的作用域链是一个重要的概念,尤其是在深入理解JavaScript执行机制时不可或缺的一部分。本文将通过对几个具体例子的分析来探讨JavaScript作用域...

    AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值

    本文将详细介绍如何在运行时使用这两个函数对Scope(作用域)变量进行赋值。 在开始之前,先简要解释一下什么是Scope。Scope在AngularJS中是绑定数据到视图(HTML)的桥梁,它遵循“脏检查”机制来检测数据的变化。...

    实例解析不同scope的作用范围

    3. **闭包作用域**(Closure Scope):这是JavaScript特有的一个特性,当一个函数可以访问并操作其外部函数的变量,即使外部函数已经执行完毕,这种情况就形成了闭包。闭包可以用来创建私有变量,防止全局变量污染。...

    前端开源库-style-scope

    style-scope库通常配合预处理器如Sass或Less,或者直接在JavaScript中使用,通过添加特殊的类名或者属性来标记组件,这些标记用于限制样式的应用范围。例如,一个具有style-scope的组件可能会有如下的HTML结构: ``...

    Spring之scope讲解测试示例代码

    `WebContent`目录通常包含Web应用的静态资源,如HTML、CSS和JavaScript文件。`.settings`目录存储了项目的特定于IDE的设置。`src`目录存放源代码,而`build`目录可能是编译后的类文件或构建输出。 理解并熟练使用...

    javascript面向对象编程指南 2nd

    In depth discussion of functions, function usage patterns, and variable scope Understand how prototypes work Reuse code with common patterns for inheritance Make your programs cleaner, faster and ...

    Programming JavaScript Applications

    , AMD, Asynchronous Operations, Callbacks, Promises and Deferreds, Code Quality, Function Polymorphism, Function Scope, Hoisting and Closures, Functional Programming and Stateless Functions, ...

    [JavaScript进阶]Professional JavaScript for Web Developers(3rd)

    4. 变量、作用域和内存(Chapter 4: Variables, Scope, and Memory):深入探讨变量的作用域规则、内存分配、垃圾回收等高级概念。 5. 引用类型(Chapter 5: Reference Types):讲解了JavaScript中的引用类型数据...

    java执行JavaScript代码

    Bindings bindings = engine.getBindings(ScriptContext.GLOBAL_SCOPE); Object result = bindings.get("result"); // 15 ``` 5. **调用JavaScript函数** 如果JavaScript代码定义了函数,可以在Java中调用它: ...

    Beginning.JavaScript.5th.Edition

    Chapter 4: Functions And Scope Chapter 5: Javascript-An Object-Based Language Chapter 6: String Manipulation Chapter 7: Date, Time, And Timers Chapter 8: Programming The Browser Chapter 9: Dom ...

    廖雪峰JavaScript Git 教程

    接着,教程深入JavaScript的高级特性,如闭包(closures)、面向对象编程中的类(class)和继承(inheritance)、迭代器(iterable)和生成器(generator)、以及作用域(scope)。掌握这些概念对于深入理解...

Global site tag (gtag.js) - Google Analytics