美文网首页
Html/CSS 作用域

Html/CSS 作用域

作者: 圆脸黑猫警长 | 来源:发表于2020-07-13 23:02 被阅读0次

作用域是什么:
有效的范围

1.ES5 中作用域

在ES5中只有函数有作用域,其他没有作用域的概念。所以当在使用的时候需要使用闭包的方式给变量加上作用域,用以防止其他地方对变量的改动从而影响执行效果。

举例说明:

var btns = [XXX];
  for (var i = 0; i < btns.length ; i ++){
      btns[i].addEventListener('click',function(){
        console.log(i);
       })
  }

点击的效果是不管点那个都会是打印最后一个i。 其原因是var 没有作用域的概念,类似于外部变量,每次打印的时候都是临时去取这个变量,这样的话若在使用前被修改则打印就是修改后的值。
可以理解为在 外部 定义了一个var i ;然后每次循环都会i++, 在调用的时候再去找外部i的值。

正确的写法:

var btns = [XXX];
  for (var i = 0; i < btns.length ; i ++){
       (function(i){
          
          btns[i].addEventListener('click',function(){
           console.log(i);
          });
         })(i);
  }

可以理解为在 内部 定义了一个var i , 类似于函数的参数虽然每次循环都会i++, 但是在调用的时候去找的是传入的这个内部的i

2.ES6 中作用域

使用let 可以对if 、 for等执行的时候加上作用域,从而不会由于变量的变化影响{}中变量的使用

举例说明:

const btns = [XXX];
  for (let i = 0; i < btns.length ; i ++){
      btns[i].addEventListener('click',function(){
        console.log(i);
       })
  }

如果用let 去声明,则for里{}则是一个作用域,即使i被改变,i 类似于给函数传的参数,在传过的函数里已经不会再改变了,所以不会被外面的修改影响到

相关文章

  • Html/CSS 作用域

    作用域是什么:有效的范围 1.ES5 中作用域 在ES5中只有函数有作用域,其他没有作用域的概念。所以当在使用的时...

  • 技术栈

    一、HTML、CSS基础、JavaScript语法基础。 二、JavaScript语法进阶。包括:作用域和闭包、t...

  • 2020前端技术栈

    一、HTML、CSS基础、JavaScript语法基础。二、JavaScript语法进阶。包括:作用域和闭包、th...

  • Vue 中的 CSS

    有作用域的 CSS 当 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。 关于有作用域的...

  • CSS之引入方式

    CSS的作用 CSS是为HTML提供显示效果的,但是我们必须在HTML里引入CSS,它才会起作用。 CSS的引入方...

  • 《vue》关于样式中“scoped”边界问题

    众所周知,Vue中样式的scoped,可以划分css模块,形成css作用域。 那么它的作用域边界是哪里呢? 先说结...

  • 2019-11-11-本周学习周报

    学习总览 JavaScript 函数作用域、块级作用域 变量提升、函数提升 CSS 新增属性transition ...

  • 强大的CSS:var变量的局部作用域(继承)特性

    一、CSS变量非全局 最近做项目,发现CSS变量一个有意思的特性,那就是变量作用域非全局。 举个例子,如下HTML...

  • CSS作用域

    刚接触Vue的文件,部分同学对style标签里面的scoped属性难免有些疑惑,毕竟之前可能没用到过,现在大家跟着...

  • 记环形进度条(静态,非动态从0变到100%,css3实现)

    使用html + css3 + js实现(项目中实现的): html: css : 上述css代码的作用分别介绍一...

网友评论

      本文标题:Html/CSS 作用域

      本文链接:https://www.haomeiwen.com/subject/wklzcktx.html