`
cpszy
  • 浏览: 690 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于js作用域的疑惑

阅读更多
	var name = "abc"
	function testGlobal() {
		alert(name); //2处:undefined
		var name = "def";
		alert(name); //3处:def
		
		alert(this.name); //4处:abc
		
		this. name = "ghi";
		alert(this.name); //5处:ghi
	}
	alert(name); //1处:abc
	
	testGlobal();
	
	alert(name); //6处:ghi

如上面的代码,在这里发帖,主要是个人觉得这个版块要比问答版块的活跃,function中的this为什么指的是widow对象,还有其他的几处具体是怎么来的,我已经作了标记,那几处的原因?
求大牛解释!
分享到:
评论

相关推荐

    关于JavaScript中var声明变量作用域的推断

    一、迷思!由一段代码引发的疑惑 请看如下代码: 代码如下: for... 如果JavaScript中用var声明的变量可视为局部变量,那么能访问到这个变量的作用域就是这个变量的局部作用域。如上例,在console.log行处,依然有j、k

    一文扫清对 JavaScript 中的疑惑

    EC 不完全等于作用域,前者包含后者,作用域是根据 EC 规则确定的变量访问规则。 四、词法作用域与作用域关系 **词法作用域(Lexical Scope)**是由代码的物理结构决定的,通常在编写代码时就已经确定。它与函数的...

    AngularJS中transclude用法详解

    AngularJS中的transclude是一个高级功能,主要用于将自定义指令的内容动态地插入到指令模板的指定位置,使得指令可以包含或包裹其他元素,同时保证这些元素的上下文作用域得到正确处理。通过使用transclude,开发者...

    s2-javascript-上机练习

    6. **作用域**:理解全局和局部作用域,以及let、const与var在块级作用域的区别。 7. **事件处理**:DOM操作,如添加事件监听器,响应用户输入。 8. **错误处理**:使用try...catch进行异常处理。 9. **JavaScript中...

    JavaScript第3章答案

    6. **作用域与闭包**:理解变量的作用域(全局、局部)以及闭包的概念,是提升JavaScript编程能力的关键,这将影响到代码的组织和内存管理。 7. **事件与DOM操作**:如果第3章涉及到前端交互,那么事件监听、事件...

    JavaScript标准参考教程(alpha).

    变量用于存储数据,遵循声明和赋值的过程,需要注意JavaScript的变量提升现象,即变量的声明会被提升到当前作用域的顶部;标识符是变量、函数、对象等的名称,必须遵循一定的命名规则;注释用于解释代码,有单行和...

    JavaScript的数据类型问题

    - **let和const**:let提供块级作用域,而const定义常量,一旦赋值,不能改变。 10. **BigInt**(ES10新增):用于表示大整数,解决了JavaScript Number类型无法精确表示大整数的问题。 理解JavaScript的数据类型...

    Html_Css_JavaScript教程

    学习JavaScript涉及理解变量、数据类型、函数、作用域、闭包,以及更高级的概念,如Promise和async/await用于异步编程。 这个"Html_Js_cssWeb基础教程.pdf"很可能包含了对这些概念的详细解释和实例,从基础语法到...

    讨论html与javascript在浏览器中的加载顺序问题

    二、javascript的作用域、变量的作用域、不同脚本段之间的关系? 三、html页面的生命周期? 这些问题真的打中了我的死穴。不了解这些,我就无法透过asp.net ajax的框架看到其底层原理。只知其然而不知其所以然。 在...

    php试题用于解答程序员的疑惑

    1. PHP变量作用域:给定的代码中,`multiply()`函数内的`$num`并没有改变外部变量`$num`的值,因此输出仍然是100。 2. Apache与PHP集成:在Apache的配置文件http.conf中,动态装载PHP模块的语句通常是`LoadModule ...

    JavaScript 闭包在封装函数时的简单分析

    JavaScript 闭包是一种高级编程技巧,它涉及到函数和作用域的概念。在JavaScript中,函数不仅可以作为可执行的代码块,也可以作为值进行传递和存储。当一个内部函数访问其外部函数的变量时,就形成了一个闭包。这种...

    Eduroutes

    3. **作用域**:JavaScript有全局作用域和局部作用域,以及ES6引入的块级作用域(let, const)。 4. **函数**:JavaScript中的函数可以作为值传递,也可以作为对象,支持函数式编程风格。 5. **事件处理**:...

    hexlet-js

    1. 变量:JavaScript中的变量使用var、let或const关键字声明,它们在不同的作用域内有不同的生命周期和可见性。 2. 数据类型:JavaScript有七种数据类型,包括基本类型(Undefined、Null、Boolean、Number、BigInt、...

    理解Javascript_14_函数形式参数与arguments

    - **函数内部的变量声明提前**:在JavaScript中,函数内的变量声明会被提升到函数作用域的顶部,这称为变量提升(hoisting)。即在函数体内部,任何变量的声明都会被提前处理,但赋值操作仍然保留在原来的位置。 - ...

    Doubt

    2. **作用域与闭包**:JavaScript的作用域规则可能会引起初学者的困惑。全局变量和局部变量的区别,以及函数内部可以访问外部变量(但反之则不行)的特性,这些都是闭包的基础。理解闭包可以帮助我们编写更高效、更...

    一些javascript一些题目的解析

    根据上述内容,我们可以看出,在JavaScript编程中,对语言特性的深入理解和细节把握至关重要,尤其是在处理函数、类型判断、作用域和上下文时,容易出现逻辑上的错误和误解。在解决实际问题或完成工作时,建议开发者...

    JavaScript必知必会(三) String .的方法来自何方

    一旦这个临时对象的作用域结束,它就会被销毁,任何对其的引用(如`a.len`)都将返回`undefined`。 在JavaScript中,相等比较`==`和严格相等比较`===`之间有重要的区别。`==`会进行类型转换,尝试使两边的值在类型...

    6602524000-TEMAP

    2. **函数**:函数声明、函数表达式、箭头函数、作用域(全局、局部、闭包)、函数参数(默认值、剩余参数、解构赋值)等。 3. **对象和原型**:对象创建、属性访问、原型链、构造函数、实例化、Object.create()、...

Global site tag (gtag.js) - Google Analytics