链接:https://juejin.im/post/5d9bf530518825427b27639d

声明

  • const命令:声明常量
  • let命令:声明变量

作用

作用域

  • 全局作用域
  • 函数作用域:function() {}
  • 块级作用域:{}

作用范围

  • var 命令在全局代码中执行
  • const命令和let命令只能在代码块中执行

赋值使用

  • const命令声明常量后必须立马赋值
  • let命令声明变量后可立马赋值或使用时赋值

声明方法:var、const、let、function、class、import

重点难点

  • 不允许重复声明
  • 未定义就使用会报错:const命令和let命令不存在变量提升(有争议)
  • 暂时性死区:在代码块内使用let命令声明变量之前,该变量都不可用

解构赋值

  • 字符串解构:const [a, b, c, d, e] = "hello"
  • 数值解构:const { toString: s } = 123
  • 布尔值解构:const { toString: b } = true
  • 对象解构
  • 形式:const { x, y } = { x: 1, y: 2 }
  • 默认:const { x, y = 2 } = { x: 1 }
  • 改名:const { x, y: z } = { x: 1, y: 2 }
  • 数组解构
  • 规则:数据结构具有Iterator接口可采用数组形式的解构赋值
  • 形式:const [x, y] = [1, 2]
  • 默认:const [x, y = 2] = [1]
  • 函数参数解构
  • 数组解构:function Func([x = 0, y = 1]) {}
  • 对象解构:function Func({ x = 0, y = 1 } = {}) {}

应用场景

  • 交换变量值:[x, y] = [y, x]
  • 返回函数多个值:const [x, y, z] = Func()
  • 定义函数参数:Func([1, 2])
  • 提取JSON数据:const { name, version } = packageJson
  • 定义函数参数默认值:function Func({ x = 1, y = 2 } = {}) {}
  • 遍历Map结构:for (let [k, v] of Map) {}
  • 输入模块指定属性和方法:const { readFile, writeFile } = require("fs")

重点难点

  • 匹配模式:只要等号两边的模式相同,左边的变量就会被赋予对应的值
  • 解构赋值规则:只要等号右边的值不是对象或数组,就先将其转为对象
  • 解构默认值生效条件:属性值严格等于undefined
  • 解构遵循匹配模式
  • 解构不成功时变量的值等于undefined
  • undefined和null无法转为对象,因此无法进行解构

定义const变量是不可以赋值_JavaScript的声明方法和作用范围,常见的结构赋值类型和使用场景...相关推荐

  1. 定义const变量是不可以赋值_定义好 const 变量

    我们 a 组组长发了一张图过来,说是为什么之前把 dateModeTransform.js 处理日期的改了,让我改回来,说是要用到 年月日时分秒,还有之前的写法也有很多不妥的地方就是传递的参数太多了, ...

  2. 结构体变量和结构体类型的定义

    结构体类型定义 定义方式1:Typedef struct LNode {int data; // 数据域struct LNode *next; // 指针域 } *LinkList; 定义方式2:st ...

  3. day02--java基础编程:变量,数据类型,类型转换,运算规则,Scanner,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  4. c语言定义学生结构体类型,C语言中结构体的三种定义方式

    c语言中结构体的定义: struct 结构体名{ 成员列表: ..... }结构体变量: 7.1.1 结构体类型变量的定义 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对 ...

  5. python定义变量并赋值_Python动态声明变量赋值代码实例

    这篇文章主要介绍了Python动态声明变量赋值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过exec().globals()和loca ...

  6. node.js 函数外定义的变量 函数内赋值后为什么不能带出_(44)python少儿编程之函数(五)--- 作用域...

    函数嵌套 在一个函数内定义了另一个函数 如图,定义了一个outer函数,然后在outer函数里面又定义了一个inner()函数,此时我们只能在outer函数调用inner()函数,如果在outer函数 ...

  7. MySQL中变量的定义和变量的赋值使用(转)

    说明:现在市面上定义变量的教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin...end块中,而普通的变量定义和使用都说的比较少,针对此类问题只能在官方文档中才能找到讲解. 前 ...

  8. mysql定义shell变量_shell 变量的定义,赋值,运算

    一.变量类型 1.1.自定义变量 1.定义变量 不能使用纯数字命名,不能使用横杠命名 变量名=变量值 [root@localhost ~]# name=erha 2.引用变量 $变量名 或者 ${变量 ...

  9. C++:重定义:符号重定义:变量重定义(二):解决变量重定义(const static)

    C++:重定义:符号重定义:变量重定义_hongwen_yul的博客-CSDN博客 上一篇文章中,我们知道解决变量重复定义其中一个办法是:尽量不要头文件中定义变量,头文件只做变量的声明.但是如果我们一 ...

最新文章

  1. AAAI 2021 最「严」一届发榜,1692 篇论文中选,录取率仅为 21%
  2. visio2013画图时两条直线交叉 如何让它不弯曲
  3. foreach用法_25个你不得不知道的数组reduce高级用法
  4. QML 读取本地文件内容
  5. Java操作Json工具——Jackson
  6. Windows 必知命令
  7. linux环境下启动git,linux系统安装git及git常用命令
  8. I00026 计算数根
  9. 损失函数 之 交叉熵
  10. 侯晓迪:全身心的投入,吃住都在实验室
  11. word的表格取消边框后还有虚线怎么办
  12. 【完整攻略】OPPO手机无密码解锁方法
  13. Apple 好莱坞艳照门的安全分析
  14. 地中海文明卢浮宫特展全攻略(国家博物馆),通俗版
  15. Windows环境安装MySQL ZIP Archive
  16. Repeater嵌套总结
  17. 多御安全浏览器更新隐私锁,个人隐私有救了
  18. ADG架构搭建1--Oracle安装
  19. nginx 离线安装
  20. 如何在控制台打开jar包

热门文章

  1. MFC中修改应用程序主窗口的标题
  2. windows+caffe下对CIFAR训练
  3. 感知哈希算法原理与实现
  4. dsniff 和 Ettercap 和 bettercap 详解 - 网络嗅探工具包
  5. Spring Data JPA 从入门到精通~思维导图
  6. Consolidate Duplicate Conditional Fragments(合并重复的条件片段)
  7. C++学习之路 | PTA乙级—— 1020 月饼 (25分)(精简)
  8. mysql先排序再分组筛选_mysql 怎样先排序再分组
  9. tensorflow 如何获取模型中想要的张量
  10. 谷歌离开游览器不触发_谷歌游览器