首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js函数、作用

2、分类: 在 ES5 的规范中,Javascript 只有两种作用: 一种是全局作用,变量在整个程序中一直存在,所有地方都可以读取; 另一种是函数作用,变量只在函数内部存在。...4、作用规则 {}不产生一个作用,定义函数才会产生一个函数作用 函数在执行的过程中,先从自己内部找变量 如果找不到,再从创建当前函数所在的作用去找, 以此往上 var a = 1 function...1、定义: 函数连同它作用链上的要找的这个变量,共同构成 2、特点 最大的特点,就是它可以“记住”诞生的环境,在本质上,就是将函数内部和函数外部连接起来的一座桥梁。...3、用处 的最大用处有两个 可以读取函数内部的变量 暂存数据(让这些变量始终保持在内存中,即可以使得它诞生环境一直存在) 4、举个栗子 如果没有这个,函数执行后,里面speed变量就会被清理掉...} var speedUp = car() speedUp() //1 speedUp() //2 5、经典案例 的经典案例是定义一个变量,一个函数,一个return 函数。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    作用

    当函数可以记住并访问所在的词法作用,即使函数是在当前词法作用之外执行,这时就产生了。...# 的实质 当函数可以记住并访问所在的词法作用时,就产生了,即使函数是在当前词法作用之外执行。...bar() 依然持有对该作用的引用,而这个引用就叫作。 bar() 函数在定义时的词法作用以外的地方被调用。使得函数可以继续访问定义时的词法作用。...timer 具有涵盖 wait() 作用,因此还保有对变量 message 的引用。...这就是 本质上无论何时何地 ,如果将函数(访问它们各自的词法作用)当作第一级的值类型并到处传递,你就会看到包在这些函数中的应用。

    71720

    重学JS-8-函数作用

    思维导图 通过下面的思维导图,我们先对JavaScript的函数作用一些基本的了解。 函数作用 作用决定了变量的可访问性,全局作用,局部作用(函数作用)。...let和const具有块作用,块级作用包括在函数内部和在一个代码块内部。 作用链 表示不同作用里面,有多个同名变量,变量的优先次序。...var a; console.log(a); // undefined a = 'banana'; console.log(a); // banana } say(); ...一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是(closure)。...也就是说,让你可以在一个内层函数中访问到其外层函数的作用。在 JavaScript 中,每当创建一个函数,就会在函数创建的同时被创建出来。

    36520

    JS执行上下文作用

    ---- 二、作用 1、变量作用 全局变量:在全局声明的变量,任何地方都可以访问 局部变量:在函数里声明的变量,只有函数里内访问 ——几个注意点: 1)声明局部变量必须用var,不然会污染全局变量...—— return 2、函数作用 js没有块级作用,而有函数作用。 函数作用是指:在函数内声明的所有变量在函数体内是始终可见的。...---- 三、 什么是 参考:学习Javascript(Closure)——阮一峰 有权访问另一个函数作用域中的变量的函数 定义在一个函数内部的函数   function f1(){     ...function f2(){       alert(n);     }     return f2;   }   var result=f1();   result(); // 999 f2()就是...作用 ---- 四、this 全局函数里,this 等于window 函数被作为某个对象的方法调用时,this等于那个对象 匿名函数执行环境具有全局性,this指向window (可以通过call

    1.3K30

    重学JS基础-作用链和

    一,作用作用链 1.全局作用 JS有一个全局对象,window,在全局声明的变量都属于window的属性,未使用声明符声明的属性也是window的属性。...上面说到函数有一个属性指向一个链式的执行上下文,最下层是函数自己的作用,而再往上就是父级作用,最后到达window作用。...当内部函数被保存到外部时,将会生成。...生成后,内部函数依旧可以访问其所在的外部函数的作用。 1.原理 在内部函数被定义的时候会创建一个属于内部函数的scope属性保存着的作用链,它会直接继承父函数的作用链....4.的优缺点 的好处 希望一个变量长期存储在内存中 避免全局变量的污染 私有成员的存在 用于缓存的坏处 容易造成内存泄漏 使用定义对象的私有变量 var Person = (function

    59320

    + 局部作用 === 如鱼得水

    《你不知道的JavaScript》第一部分作用第4篇。 在掌握作用的前提下,才能真正理解和识别。...:当函数可以记住并访问所在的词法作用时,就产生了,即使函数是在当前词法作用之外执行。...fn()可以被正常执行,并且还是在被自己定义的词法作用之外执行。 这就是的神奇了。...块作用 + ,简直不要太如鱼得水。 作用强大,还可以用来写模块。...当函数可以始终记住并访问其所在作用,即使该函数在该作用之外执行,这种情况就产生了的形成需要两要素:存在访问目标的局部作用、函数始终保持对该作用的引用。

    60230

    JS知识点梳理--作用作用链、柯里化、

    一、作用作用作用是指 js 变量使用时所存在的一个区域,分为全局作用(window)和局部作用(function、setTimeout...等都会产生局部作用)。...红宝书中的描写:是指有权访问另一个函数作用域中的变量的函数。其实闭包就是返回一个函数,且这个函数对局部变量存在引用形成的包含关系就是。其实就是创建一个不会被 GC 回收的局部变量。...也正因如此,才会有内存泄漏的风险,需要在每次使用完后立刻清除。的形成:当前环境中存在指向父级作用的引用。2....作用使用的目的――隐藏变量,间接访问一个变量,在定义函数的词法作用域外,调用函数。通常在回调函数、私有属性、函数柯里化中使用。4....使用实现多个图片点赞功能使用完成,多图点赞单独点赞功能,且每个 input 的点赞数量互不干扰。在这个例子中利用声明了 5 个新的独立词法作用。<!

    51730

    JavaScript——作用

    本文着重于对 JavaScript 中的作用包机制进行剖析和说明,本质上也是作用的一种类型,因为在 JavaScript 里非常重要,所以我们把它在标题里单独列出来。...作用(closure scope) 是一种让函数的代码能够访问函数声明(函数对象被创建)时的作用内(上下文环境)的变量机制。包在函数式语言中非常普遍。...这个定义本身没有问题,但把理解成函数执行时的作用环境好像更接近的本质,因此知典对 JavaScript 中的重新做了一个定义: 是将函数定义时的局部作用环境保存起来后生成的一个实体。...实现了一个作用,函数始终是运行在它们被定义的作用里,而不是它们被调用的作用里。...可以嵌套,全局作用(0..n)作用→函数作用→代码块(0..n)作用就整个的形成了一个代码执行时的作用链。

    71510

    JS基础知识总结(四):作用

    与赋值的区别 三.原型与原型链 原型 原型链的定义 四.作用 作用作用链 变量提升、函数提升 1.作用 回顾下jQuery源码中,代码是包在(function(){//代码})(...主要的目的是希望里面的所有变量,不会暴露到外面,以防止变量全局污染,这就是函数作用。 在JS中,变量的作用有两种:全局作用和函数作用。...:有权访问另一个作用域中的变量的函数。...关于有个经典问题,就是循环中使用解决用var定义变量的问题,下面有两个示例: 示例1: for (var i = 1; i <= 8; i++) {...: 学习Javascript(Closure) MDN 5.小结 本文主要分别介绍了作用作用链、变量提升和的内容,作为JS基础知识总结的最后一篇。

    2.6K1332

    JS知识点梳理之作用作用链、柯里化、

    一、作用作用作用是指 js 变量使用时所存在的一个区域,分为全局作用(window)和局部作用(function、setTimeout...等都会产生局部作用)。...红宝书中的描写:是指有权访问另一个函数作用域中的变量的函数。其实闭包就是返回一个函数,且这个函数对局部变量存在引用形成的包含关系就是。其实就是创建一个不会被 GC 回收的局部变量。...也正因如此,才会有内存泄漏的风险,需要在每次使用完后立刻清除。的形成:当前环境中存在指向父级作用的引用。2....作用使用的目的――隐藏变量,间接访问一个变量,在定义函数的词法作用域外,调用函数。通常在回调函数、私有属性、函数柯里化中使用。4....使用实现多个图片点赞功能使用完成,多图点赞单独点赞功能,且每个 input 的点赞数量互不干扰。在这个例子中利用声明了 5 个新的独立词法作用。<!

    45820

    详解javascript作用

    作用查找会在找到第一个匹配的标识符时停止 eval和with可以欺骗词法作用,不推荐使用 函数作用和块作用 JavaScript具有基于函数的作用,属于这个函数的变量都可以在整个函数的范围内使用及复用...如果function是声明中的第一个词,那么就是一个函数声明,否则就是一个函数表达式 with,try/catch具有块作用,方便好用的实现块级作用的是es6带来的let关键字 作用 将内部函数传递到所在词法作用以外...,它都会持有对原始定义作用的引用,无论中何处执行这个函数都会使用 本质上,无论何时何地,如果将函数当作第一级的值类型并到处传递,就会看到包在这些函数中的应用。...在定时器,事件监听器,ajax请求,web workers或者其他任何异步任务中,只要使用了回调函数,实际上就是在使用是函数的嵌套定义,及该函数定义时候的作用链) 模块的封装利用了,将内部变量隐藏...,并返还一个公共api的对象,这一返回的对象对模块的私有变量形成访问。

    66640

    JavaScript之作用

    二、作用 (1)、理解 当函数可以记住并访问所在的词法作用时,就产生了,即使函数是在当前词法作用之外执行。...在 foo() 执行后,通常会期待 foo() 的整个内部作用都被销毁,因为我们知道引擎有垃圾回收器用来释放不再使用的内存空间; 的“神奇”之处正是可以阻止这件事情的发生。...事实上内部作用依然存在,因此没有被回收,因为 bar() 本身在使用; 拜 bar() 所声明的位置所赐,它拥有涵盖 foo() 内部作用,使得该作用能够一直存活,以供 bar() 在之后任何时间进行引用...bar() 依然持有对该作用的引用,而这个引用就叫作。...(4)、使用的注意点 由于会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用,否则会造成网页的性能问题,在IE中可能导致内存泄露。

    70510

    JavaScript 面试要点:作用

    当函数可以记住并访问所在的词法作用,即使函数是在当前词法作用之外执行,这时就产生了。...} var baz = foo(); baz(); // 2 无论使用何种方式对函数类型的值进行传递 ,当函数在别处被调用时都可以观察到。...无论通过何种手段将内部函数传递 到所在的词法作用以外,它都会持有对原始定义作用的引用,无论在何处执行这个函数都会使用。...; 本质上无论何时何地 ,如果将函数(访问它们各自的词法作用)当作第一级的值类型并到处传递,你就会看到包在这些函数中的应用。...在定时器、事件监听器、Ajax请求、跨窗口通信、Web Workers 或者任何其他的异步(或者同步)任务中,只要使用了回调函数 ,实际上就是在使用

    44820

    python 作用、装饰器(3.2)

    作用 程序创建, 访问, 改变一个变量时, 都是在一个保存该变量的空间内进行, 这个空间被称为命名空间, 即作用 Built-in 内置 可以在Python环境中的任何模块, 任意位置访问和调用...最大的应用就是 自由变量是个相对的概念 将局部变量变成自由变量 使用nonlocal关键字 def make_averager(): total = 0 count = 0...b.append(2), 然后再声明一个局部变量b # 而是再函数声明之初就已经定义了b为局部变量 # b = 3 return None foo() print(a) print(b) 和装饰器... 指延申了作用的函数, 也就是作用域中的Enclosed的概念 def make_averager(): series = [] def averager(value):...# series就是被延申作用的变量 my_avg = make_averager() print(my_avg(1)) print(my_avg(2)) 装饰器 实现原理 就是, 延申了被装饰函数的作用

    50810
    领券