`
muyu
  • 浏览: 222757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js的作用域

阅读更多

PHP的函数里,不能直接访问函数外面的变量,除非显式地声明该变量为global。JavaScript可以直接访问:

var str = 'tom'; 
(function(){
   str = 'jack';
 })();
alert(str);  //打印出jack

 

但是,如果在函数里重新声明变量str,结果就不同了:

var str = 'tom'; 
(function(){
   var str = 'jack';
 })();
alert(str);  //打印出tom

 

 如果在函数里定义一个变量,它在外面能被访问吗?

(function(){
   var str = 'jack';
 })();
alert(typeof str);  //打印出 'undefined'

 

---------

结论

---------

在函数里,可以访问函数体外面的变量;

从函数外面,则不能访问函数体里定义的变量;

 

在google Ajax APIs Playground关于《Anonymous Function for Clean Namespace》的示例代码中,开头的注释如下:

/*
 * Javascript uses functional scope
 * A variable defined in a function is not available outside
 * Very useful for keeping global namespace clean
 * Hide your code in an anonymous function!
 * Then 3rd party Javascripts don't collide!
 * To export any methods to the global, assign them to the window obj (that is the global context)
*/

 

---------

意思

---------

JavaScript的函数作用域;

在函数内定义的变量不能在外面访问;

在保持全局命名空间整洁性方面非常有作用;

把你的代码放在匿名函数里!

那么,就不会和第三方的JavaScript冲突!

。。。

 

 

---------

示例

--------- 

 

/*
 * Javascript uses functional scope
 * A variable defined in a function is not available outside
 * Very useful for keeping global namespace clean
 * Hide your code in an anonymous function!
 * Then 3rd party Javascripts don't collide!
 * To export any methods to the global, assign them to the window obj (that is the global context)
*/

var contentDiv = document.getElementById('content');
(function() {
  var a = 'Invisible outside of anonymous function';
  function invisibleOutside() {
  }

  function visibleOutside() {
  }
  window.visibleOutside = visibleOutside;

  var html = '--INSIDE Anonymous--';
  html += '<br/> typeof invisibleOutside: ' + typeof invisibleOutside;
  html += '<br/> typeof visibleOutside: ' + typeof visibleOutside;
  contentDiv.innerHTML = html + '<br/><br/>';
})();

var html = '--OUTSIDE Anonymous--';
html += '<br/> typeof invisibleOutside: ' + typeof invisibleOutside;
html += '<br/> typeof visibleOutside: ' + typeof visibleOutside;
contentDiv.innerHTML += html + '<br/>';

 

运行结果 写道
--INSIDE Anonymous--
typeof invisibleOutside: function
typeof visibleOutside: function

--OUTSIDE Anonymous--
typeof invisibleOutside: undefined
typeof visibleOutside: function

 

 

 

 

分享到:
评论

相关推荐

    深入理解JavaScript作用域和作用域链

    JavaScript作用域是编程中至关重要的概念,它规定了变量和函数的可见性及生命周期。JavaScript主要有两种作用域:全局作用域和局部作用域。 全局作用域是指在代码的任何位置都可以访问的变量或函数,这通常包括在最...

    深化理解javascript作用域其次篇之词法作用域和动态作用域_.docx

    深化理解javascript作用域其次篇之词法作用域和动态作用域_ 深化理解javascript作用域其次篇之词法作用域和动态作用域,是javascript中非常重要的一部分。理解词法作用域和动态作用域对javascript的编程至关重要。...

    JavaScript作用域原理

    JavaScript作用域是编程中至关重要的概念,它定义了变量、函数和对象的可见性和生命周期。在JavaScript中,作用域主要分为两种类型:全局作用域和局部作用域。此外,随着ES6的引入,块级作用域和函数作用域也变得...

    05-JavaScript作用域.pdf

    JavaScript作用域是指在JavaScript代码中,变量、常量、对象和函数能够访问的范围。在编程中,变量和函数的使用都受到作用域的限制,决定了它们能够在哪些代码块中被引用。作用域有助于防止变量命名冲突,也使得程序...

    深入理解JavaScript作用域共12页.pdf.zip

    JavaScript作用域是编程中至关重要的概念,尤其是在JavaScript这种动态类型的脚本语言中。它规定了变量、函数以及其它标识符的可见性和生命周期,是代码组织和管理的关键元素。本资料"深入理解JavaScript作用域共12...

    js作用域基本介绍.doc

    JavaScript 作用域是编程中一个至关重要的概念,它规定了变量和函数的有效范围,即它们在哪里可以被访问和使用。理解作用域对于编写可维护和高效的代码至关重要。本文将深入探讨 JavaScript 的全局作用域和局部作用...

    JavaScript作用域示例详解_.docx

    JavaScript作用域是编程中至关重要的概念,它规定了变量和函数的可见性和生命周期。了解JavaScript作用域对于编写高效、安全的代码至关重要。本篇将详细解释JavaScript作用域的几个核心特性,包括无块级作用域、函数...

    javascript作用域

    讨论javascript作用域,很多人被javascript作用域搞迷糊了,这个应该有用。

    JavaScript作用域原理(二) 预编译[9 29]

    JavaScript作用域原理是编程中的重要概念,它关乎变量的可见性、生命周期以及代码组织。本文将深入探讨JavaScript的作用域机制,特别是预编译的概念。在理解这些知识点之前,建议先回顾一下JavaScript的基础语法。 ...

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

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

    javascript变量作用域

    JavaScript 变量作用域详解 JavaScript 变量作用域是基于其特有的作用域链的。在 JavaScript 中,变量作用域是指变量可以被访问和修改的范围。 JavaScript 没有块级作用域,而是基于函数作用域和全局作用域的。 ...

    理解JavaScript作用域和作用域链

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。任何程序...

    javascript执行环境,作用域理解

    JavaScript 执行环境和作用域的深层次理解 在 JavaScript 中,执行环境和作用域是两个非常重要和基本的概念,理解了这两个概念对于 JavaScript 中很多脚本的运行结果就能明白其中的道理了。执行环境是一个概念,一...

    01JavaScript作用域.md

    01JavaScript作用域.md

    关于JavaScript作用域你想知道的一切

    Javacript 中有一系列作用域的概念。对于新的JS的开发人员无法理解这些概念,甚至一些经验丰富的开发者也未必能。这篇文章主要目的帮助理解JavaScript中的一些概念如:scope,closure, this, namespace, function ...

Global site tag (gtag.js) - Google Analytics