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

JS作用作用

JS中的作用就是在一定的空间范围内对数据进行读写操作。 在JS中一个变量的作用(scope)是程序中定义这个变量的区域。 变量有全局变量和局部变量两种。...全局变量作用是全局性的,即在JavaScript代码中,该全局变量处处都有定义。...下面就要借助JS作用链来更好的理解作用了。 在此之前,先要明确个概念,即执行环境和作用是两个完全不同的概念。 函数的每次调用都有与之紧密相关的作用和执行环境。...搜索过程始终从作用链的前端开始,然后逐级地向后(全局执行环境)回溯,直到找到标识符为止。 此外还要讲下JS作用域中的块级作用JS中是没有块级作用这个概念的。 什么是块级作用呢?...JS并不支持块级作用,它只支持函数作用,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。 那么JS又该怎么拥有块级作用呢?

4.1K30

【JavaScript】作用 ① ( JavaScript 作用 | 全局作用 | 局部作用 | JavaScript 变量 | 全局变量 | 局部变量 )

可维护性 , 避免 命名冲突 , 在不同的作用域中 , 可以使用相同的名称 ; 2、全局作用 和 局部作用 JavaScript 的 作用 分为 全局作用 和 局部作用 两种类型 : 全局作用...: 在代码 的 任何地方都能访问到的变量就处于全局作用域中 , 具体指的就是 标签中 , 或者 单独的 js 文件中 ; 局部作用 : 在 代码块 内 定义 的变量具有局部作用...全局作用 // 定义的 num 变量在 整个 标签中都可以访问 // 该变量就是 全局变量 var num = 10;...变量 1、全局变量 和 局部变量 JavaScript 变量 根据 其 被声明的 作用类型 , 分为 全局变量 : 在 全局作用 声明的变量 , 就是全局变量 , 全局作用就是 ... 标签中 或者 js 文件中 ; 在 函数外部 声明的变量 ; 特殊情况 : 在 全局作用域中 没有使用 var 声明 , 而直接赋值使用的变量 , 也是 全局变量 ; 局部变量

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

    JS基础——作用作用

    作用 [[scope]],函数定义时自动生成的一个隐式属性,是用来存储函数作用链 Scope Chain的容器。作用链是用来存储函数执行上下文 AO和全局执行上下文 GO的容器。...函数被定义时,系统会为函数生成[[scope]],[[scope]]中保存该函数的作用链,并从该作用链的起始位置开始存储当前环境的作用链。...函数被定义后&将要执行前会生成函数本身的AO,并将其插入作用链的起始位置。...,并将GO插入到作用链的起始位置。...函数a被执行时,此时函数b也被定义,函数b的[[scope]]也在此时生成,其中存储函数b的作用链,并将当前环境的作用链插入函数b作用链的起始位置,即函数a的AO和GO。

    3.5K10

    JS作用

    JavaScript的作用有全局作用和局部作用 先通过一下代码来体验下作用 var x = 1; function f1(){ var y = 2; x = 10; console.log...undefined 就是报如下的错误,也就是y是个未定义的变量 VM42:7 Uncaught ReferenceError: y is not defined at :7:13 上述代码中变量x就是全局作用...,方法f1的作用也是全局,f1方法中的变量y是局部的,y的作用范围仅限f1方法体内,离开了f1的方法体的作用范围,就无法获取到y的值,所以上述的例子中最后打印y的时候是undefined 我们再来看下面的例子...a = 1; function f1(){ console.log(a); //1 a = 3; } f1(); console.log(a); //3 上述代码能正常运行,首先全局变量...不管怎样我们来对上述代码进行一下预解析, 1)定义全局变量a 2)定义全局函数f1 3)给全局变量a赋值为10 4)运行f1 4-1)定义局部变量b,当前b的值为undefined 4-2)定义局部变量

    11310

    JS进阶:作用作用

    作用(Scope) 1.什么是作用 作用是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用决定了代码区块中变量和其他资源的可见性。...2.全局作用和函数作用 在代码中任何地方都能访问到的对象拥有全局作用,一般来说以下几种情形拥有全局作用: 最外层函数 和在最外层函数外面定义的变量拥有全局作用 var outVariable...全局作用有个弊端:如果我们写了很多行 JS 代码,变量定义都没有用函数包括,那么它们就全部都在全局作用域中。这样就会 污染全局命名空间, 容易引起命名冲突。...因为放在里面的所有变量,都不会被外泄和暴露,不会污染到外面,不会对其他的库或者 JS 脚本造成影响。这是函数作用的一个体现。...); // logs 'Hammad' JS 的初学者经常需要花点时间才能习惯变量提升,而如果不理解这种特有行为,就可能导致 bug 。

    2.6K20

    了解 JS 作用作用

    JS中使用的是词法作用(lexical scope) 不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量(global scope) 在函数内声明的变量具有函数作用(function...} test(); console.log(name); //two 函数作用,就是说函数是一个作用的基本单位,js不像c/c++那样具有块级作用 比如 if  for 等 function test...JS中的声明提前 js中的函数作用是指在函数内声明的所有变量在函数体内始终是可见的。...引入一大段话来解释: 每一段js代码(全局代码或函数)都有一个与之关联的作用链(scope chain)。 这个作用链是一个对象列表或者链表,这组对象定义了这段代码中“作用域中”的变量。...作用链举例: 在js最顶层代码中(也就是不包括任何函数定义内的代码),作用链由一个全局对象组成。

    2K10

    js作用详解

    在顶级作用下,var 声明变量,等于全局变量,被window对象接管: var aaaa='666'; ?...定义全局作用变量 直接定义不借助var,将定义全局变量,成为window对象的属性:     var  a1='666';     a2='777';     function test...在闭包函数中声明的变量,只能在闭包函数内的作用,以及下层作用使用,可通过return 对象中,通过return对象中声明的方法进行返回,使得上级作用能成功访问到闭包作用的变量 return作用变量访问情况...2:js作用是往下通用的,下层作用可访问上层作用的变量,并可修改值 3:js下层作用变量和上层同名冲突时,下层作用将覆盖上层变量,但上层作用的访问不受影响 4:不适用var方法定义的变量,...都属于全局变量,也就是window对象的属性 5:可通过window.方法定义全局变量 6:在顶层作用声明的函数,其实就是window对象的方法 7:闭包在首次声明时,需要加括号自动调用,否则不能调用

    2.5K10

    原生JS | 作用

    HTML5学堂-码匠:作用那些必须掌握的知识,还有大量作用案例练习与分析,快快进来! 作用的基础知识 在JavaScript中,每个变量会有一个有效区域(范围),这个就是作用。...全局变量 在window环境下声明的变量,或者可以理解为非函数内声明的变量,称为全局变量全局变量存在于整个JavaScript当中,在任何地方都能被访问和修改。...如果window下也不存在该空间,会在全局作用之下进行空间的创建。 作用链 由于在全局作用当中会包含局部作用,局部作用当中还可以再包含局部作用。...当有多层作用时,深层的作用域中查找变量时,会按照“当前作用”到“上层作用”再到“全局作用”的顺序进行查找,这个查找的顺序就可以理解为作用链。...欢迎沟通交流~~~HTML5学堂(码匠) 实例解析 作用案例1 - 全局变量 var user = 'HTML5学堂'; console.log(user); console.log(window.user

    4.8K50

    js中的作用

    前言 相信自从es6出来之后,你一定多少知道或者已经在项目中实践了部分的块级作用,在函数或者类的内部命名变量已经在使用let了,但是你知道它真正的作用是什么吗?...又是因为什么我们要用这个块级作用,本文与你一起探讨块级作用的场景以及所有细节问题。...es6之前的作用 特点1 :js只有函数级作用以及全局两种 特点2 :不通过var声明的变量直接赋值也可以用并且可以访问,原理是直接赋值到了window对象属性变量下,两者如果同时定义,那么会覆盖使用...,函数内可以访问外部作用,而全局是不可以访问函数作用内的变量或者方法的 var a=b=c=12 function demo(){ var z=13 console.log(b)//12...块级作用 场景一 循环中的块级作用 如果我们有一个遍历循环的绑定事件,并且需要把当前的指针绑定到对应方法中。

    3.2K20

    JS学习系列 03 - 函数作用和块作用

    在 ES5 及之前版本,JavaScript 只拥有函数作用,没有块作用(with 和 try...catch 除外)。在 ES6 中,JS 引入了块作用,{ } 内是单独的一个作用。...采用 let 或者 const 声明的变量会挟持所在块的作用,也就是说,这声明关键字会将变量绑定到所在的任意作用域中(通常是 {...} 内部)。 今天,我们就来深入研究一下函数作用和块作用。...函数中的作用 函数作用的含义是指,属于这个函数的任何声明(变量或函数)都可以在这个函数的范围内使用及复用(包括这个函数嵌套内的作用)。...块作用 ES5 及以前 JavaScript 中具有块作用的只有 with 和 try...catch 语句,在 ES6 及以后的版本添加了具有块作用的变量标识符 let 和 const 。...总结 函数是 JavaScript 中最常见的作用单元。块作用指的是变量和函数不仅可以属于所处的函数作用,也可以属于某个代码块。

    1.6K10

    JS学习系列 03 - 函数作用和块作用

    在 ES5 及之前版本,JavaScript 只拥有函数作用,没有块作用(with 和 try...catch 除外)。在 ES6 中,JS 引入了块作用,{ } 内是单独的一个作用。...采用 let 或者 const 声明的变量会挟持所在块的作用,也就是说,这声明关键字会将变量绑定到所在的任意作用域中(通常是 {...} 内部)。 今天,我们就来深入研究一下函数作用和块作用。...函数中的作用 函数作用的含义是指,属于这个函数的任何声明(变量或函数)都可以在这个函数的范围内使用及复用(包括这个函数嵌套内的作用)。...块作用 ES5 及以前 JavaScript 中具有块作用的只有 with 和 try...catch 语句,在 ES6 及以后的版本添加了具有块作用的变量标识符 let 和 const 。...总结 函数是 JavaScript 中最常见的作用单元。块作用指的是变量和函数不仅可以属于所处的函数作用,也可以属于某个代码块。

    11810

    js作用作用链和它的一些优化

    前言作用作用链是所有JavaScript开发人员每天都要接触和应用的内容。不管是面试中的作用链的面试考察,还是日常代码研发中变量与作用链的构建,它的身影几乎无处不在。...在变量的访问权限安全上,作用还承担着保护当前作用内的变量不被外部作用访问的权限保护作用。通过类比,我们可以把作用想象成一个气泡。在这个气泡里所声明的变量成员被包含在其中。...'; console.log(answer); /* 函数作用 end */}/* 模块作用 end *//* 全局作用 end */作用的嵌套作用在使用上具有嵌套特征。...一个作用能够在自身内部创建一个新作用从而形成内部和外部作用的嵌套关系。全局作用作为JavaScript的初始作用,是所有其他作用最外层的作用。...另外,每一个ES Module都具有模块自己的顶级作用(top-level scope),模块中的顶级作用变量和函数都包含在这个模块顶级作用域中,而模块作用的外部作用是全局作用

    1.7K00

    JS作用与闭包

    在JavaScript中,作用是可访问变量,对象,函数的集合。 变量分为全局变量和局部变量。 全局变量在函数外定义,HTML中全局变量是window对象,所有数据对象都属于window对象。...JS作用分为全局作用和函数作用。 2|0全局作用 全局作用在页面打开时创建,在页面关闭时销毁。...全局作用域中的变量都是全局变量,在页面的任意部分都可以访问到。...作用链的末端始终为全局变量对象。 作用链是由一系列变量对象组成,我们可以在这条链中,查询变量对象中的标识符,这样就可以访问到上一层作用域中的变量了。...例如: innerTest()的局部环境开始时会先在自己的变量对象中搜索变量和函数名,如果搜索不到则再搜索上一级作用链。 test()的作用链中只包含两个对象: 自己的变量对象和全局变量对象。

    1.9K20

    JS作用下 21

    ES6之前和ES6分开研究 1.需要明确: 1.ES6定义变量通过let 2.ES6除了全局作用、局部作用以外, 还新增了块级作用...3.ES6虽然新增了块级作用, 但是通过let定义变量并无差异(都是局部变量) 2.ES6作用链 1.1.全局作用我们又称之为0级作用 2.2....定义函数或者代码块都会开启的作用就是1级/2级/3级/...作用 2.3.JavaScript会将这些作用链接在一起形成一个链条, 这个链条就是作用链 0...---> 1 ----> 2 ----> 3 ----> 4 2.4.除0级作用以外, 当前作用级别等于上一级+1 3.变量在作用链查找规则...3.1先在当前找, 找到就使用当前作用找到的 3.2如果当前作用域中没有找到, 就去上一级作用域中查找 3.3以此类推直到0级为止, 如果0级作用还没找到, 就报错

    1.3K20

    关于js作用问题详解

    undefined var a; 3. console.log(a); // undefined var a = 10; 4. var a = 10; console.log(a); // 10 在一段js...如上图,全局代码和fn、bar两个函数都会形成一个作用。而且,作用有上下级的关系,上下级关系的确定就看函数是在哪个作用下创建的。...例如,fn作用下创建了bar函数,那么“fn作用”就是“bar作用”的上级。...作用最大的用处就是隔离变量,不同作用下同名变量不会有冲突 例如以上代码中,三个作用下都声明了“a”这个变量,但是他们不会有冲突。各自的作用下,用各自的“a”。 作用和上下文环境 ?...如上图,我们在上文中已经介绍了,除了全局作用之外 每个函数都会创建自己的作用作用在函数定义时就已经确定了。而不是在函数调用时确定。

    1.9K30

    JS作用(入门篇)

    这套规则被称为作用js作用规则并不像其他语言(比如 c、java 等)那么严谨,甚至很多时候还会让新手一头雾水。...本文要讲作用有以下几个: 全局作用(window / global) 函数作用(function) 块状作用({}) 动态作用(this 粗略讲解) 本文主要探讨日常工作中需要了解的几个点,所以并不会深入讲解...变量与常量 在了解作用之前,需要先了解 js 的变量和常量是如何声明和使用。 js 的变量声明有 2 种:var 和 let。...点击查看 const 用法 全局作用 在 window 下声明的变量属于全局作用。 比如 var a = 123 与之相对的是 局部作用 ,比如 函数作用 、块状作用 等,下面会讲到。...动态作用 动态作用主要是指 this 。 动态作用不关心函数和作用是如何声明以及在何处声明的,它只关心从何处调用(箭头函数除外)。

    96510
    领券