基于ES6作用域和解构赋值详解

2023-12-08前端开发
6

基于ES6作用域和解构赋值详解

作用域 Scope

作用域是程序代码中声明变量的区域。作用域可以分为全局作用域和局部作用域。

在ES6中,可以使用letconst声明变量,这两种声明方式都是块级作用域。

示例 1

// 全局作用域
let a = 1;

function test() {
  // 局部作用域
  let b = 2;
  console.log(a); // 1
  console.log(b); // 2
}

test();
console.log(a); // 1
console.log(b); // 报错:b未定义

示例 2

// let声明的变量不允许重复声明
let a = 1;
let a = 2; // 报错

解构赋值 Destructuring

解构赋值是一种特殊的赋值方式,它可以将数组或对象中的值解构到不同的变量中。

数组解构

let arr = [1, 2, 3];

// 将数组的第一个值赋值给a,第二个值赋值给b,第三个值赋值给c
let [a, b, c] = arr;

console.log(a); // 1
console.log(b); // 2
console.log(c); // 3

对象解构

let obj = { name: 'Tom', age: 18 };

// 将对象的name属性赋值给a,age属性赋值给b
let { name: a, age: b } = obj;

console.log(a); // Tom
console.log(b); // 18

示例 3

// 混合使用数组解构和对象解构
let arr = [{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }];

// 将第一个数组元素的name属性赋值给a,age属性赋值给b,将第二个数组元素的name属性赋值给c,age属性赋值给d
let [{ name: a, age: b }, { name: c, age: d }] = arr;

console.log(a); // Tom
console.log(b); // 18
console.log(c); // Jerry
console.log(d); // 20

结束语

ES6的作用域和解构赋值在开发中非常常用,掌握好这部分内容对于编写高质量的JavaScript代码非常有帮助。

The End

相关推荐

layui实现图片上传成功后回显点击放大图片功能
layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-...
2025-09-06 前端开发
202

Layui实现数据表格中鼠标悬停图片放大离开时恢复原图
Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150...
2025-09-04 前端开发
112

layui点击文本输入框调起弹出选择框并选择内容的两种方法参考
我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen...
2025-09-02 前端开发
167

网站部署https后百度地图不显示问题
https的网站如果引用百度地图,会出现加载不了的问题,这是因为涉及到跨域问题,网站是https的,但是引用百度地图的是http的,这个要怎么操作呢? 比如我引用的地址:http://api.map.baidu.com/api?v=2.0ak=AK显示 后来看了一下,少了一个s=1字段,加一下s=1...
2025-07-28 前端开发
139

微信小程序实现点击复制功能和手机拨打电话功能
做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"...
2025-07-02 前端开发
78

js拖拽排序插件Sortable.js如何使用
由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持...
2025-06-12 前端开发
161