块级作用域

作者: 海豚先生的博客 | 来源:发表于2021-01-06 21:00 被阅读0次

变量

  • 不可重复声明
  • 不存在变量提升
  • 有暂时性死区
  • typeof不再是一个百分之百安全的操作,会在TDZ内报错
  • 块级作用域的出现,实际上使得获得广泛应用的匿名立即执行函数表达式(匿名 IIFE)不再必要了。
  • ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明,但是ES6允许。
  • 全局变量不在挂载在window下

字符串

  • ES2020引入了String.prototype.matchAll(),返回的是遍历器,可以for of 遍历取出
  • ES2021 引入了replaceAll()方法,可以一次性替换所有匹配。

数值

  • Number.isInteger() 是否整型
  • ES2020 引入了一种新的数据类型 BigInt(大整数),BigInt 只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。

函数

  • 为了减轻因此产生的不兼容问题
    • 允许在块级作用域内声明函数。
    • 函数声明类似于var,即会提升到全局作用域或函数作用域的头部。
    • 同时,函数声明还会提升到所在的块级作用域的头部。

对象

  • ES2020 在语言标准的层面,引入globalThis作为顶层对象
  • 如果要将一个已经声明的变量用于解构赋值,使用括号let x;({x} = {x: 1});
  • 支持动态属性名,把表达式放在方括号内
  • ES2020 引入了一个新的 Null 判断运算符??。它的行为类似||,但是只有运算符左侧的值为nullundefined时,才会返回右侧的值。

数组

  • 如果等号的右边不是数组(或者严格地说,不是可遍历的结构),那么解构将会报错。
  • Array.of方法用于将一组值,转换为数组。Array.of基本上可以用来替代Array()或new Array()

其他

  • 使用<%= ... %>输出 JavaScript 表达式。
  • ES2019 做出了改变,允许try...catch中的catch语句省略参数。

相关文章

  • 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/skmioktx.html