美文网首页
块级作用域

块级作用域

作者: 乘风破浪的哥哥 | 来源:发表于2021-04-22 12:32 被阅读0次

全局作用域

浏览器有一个顶层的对象window,其属性和var的全局变量等价
如果是window的内置属性,输出为默认值,否则为undefined
如果用var设置了window的内置属性作为变量,则该属性会被覆盖,造成window的污染
Node.js环境无法识别window,因为不是基于浏览器的
EC6之前,为了防止变量污染,采用自我立即执行匿名函数的方式防止变量污染

(function(){
  var value = 10;
}());
  console.log(value)  // 报错value没有定义

块级作用域

EC6之前只有全局作用域函数作用域,并没有所谓的块级作用域
{ }两个花括号里面的区域,就是块级作用域,比如循环体条件体
{{{...}}}块级作用域支持嵌套,每一层都是封闭的,只作用于此层

函数定义

块级区域定义函数,在外部可以访问
块级区域,用let定义函数,在外部无法访问

{
    function fn(){
        console.log('块级函数fn')
    }

    let fnn = function(){
        console.log('块级函数fnn')
    }

    fn()  // 输出:块级函数fn
    fnn() // 输出:块级函数fnn
}

fn()  // 输出:块级函数fm
fnn() // 报错:函数fnn未定义

相关文章

  • js 作用域

    js 作用域主要有:全局作用域和局部作用域,es5之前没有块级作用域,es6有了块级作用域 何为块级作用域,块级作...

  • let、const和var的区别(个人笔记)

    1. 区别 (1)块级作用域块作用域由{ }包括,let和const具有块级作用域,var不存在块级作用域。块级作...

  • let,var和const

    var没有块级作用域,只有方法作用域常见的块级作用域,if(){}。for(){}。

  • 第七章 块级作用域、私有变量

    模仿块级作用域 私有变量  js没有块级作用域,只有全局作用域和局部作用域(函数作用域),块级作用域是指某一部分代...

  • 你真的懂let和const吗?

    块级作用域 在ES6之前我们脑海里应该只存在全局作用域和函数级作用域,没有块级作用域。那么为什么要引入块级作用域呢...

  • js高级知识点(第五天)

    所用域 什么是作用域 变量起作用的范围 什么是块级作用域,使用代码块限定的作用域是块级作用域(let声明的变量是块...

  • ES6->块级作用域

    块级作用域 为什么需要块级作用域? ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。第...

  • es6新增特性

    一、变量的改变 let 用来声明变量(块级作用域) const 用来表示常量(块级作用域) 块级作用域 就是在{}...

  • vue.js let与for的用法

    (一)块级作用域1.let声明的变量拥有块级作用域,块级作用域是一对大括号2.块级作用域可以直接写一对大括号,以后...

  • js声明提升

    块级作用域块级作用域是指花括号内的每一段代码都具有各自的作用域,而javascript没有块级作用域。javasc...

网友评论

      本文标题:块级作用域

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