当前位置: 首页 > article >正文

ES6学习模板字符串、解构赋值(三)

这里写目录标题

  • 一、模板字符串
  • 二、解构赋值
    • 2.1、数组解构
    • 2.2、对象解构
    • 2.3、函数参数解构
    • 2.4、解构用途
      • 2.4.1、交换变量值
      • 2.4.2、从函数返回多个值
      • 2.4.3、提取JSON数据

一、模板字符串

ES6模板字符串用反引号 `` 标识,${}这样的方式简化了字符串中嵌入变量的写法。

           const oBox = document.querySelector('.box');
            let text = "hello,es6!";
            //传统写法
            //let htmlTel = "<p>" + text + "</p>";
            //模板字符串写法
            let htmlTel = `<p>${text}</p>`;
            oBox.innerHTML = htmlTel;

二、解构赋值

解构赋值是对赋值运算符的一种扩展,通常是针对数组和对象进行操作。优点是使得代码书写简洁易读性高。

2.1、数组解构

在以前,为变量赋值,只能直接指定值

            let a=1;
            let b=2;
            let c=3;

ES6允许我们这样写:

         let [a,b,c]=[1,2,3];

如果解构不成功,变量的值就等于undefined,例如:

	let [a,b,c,d]=[1,2,3];

2.2、对象解构

          let book={
                name:'ES入门学习',
                price:'20.99'
            }
            let{name,price}=book;

对象的解构赋值时,可以对属性忽略和使用剩余运算符

            let obj = {
                a: {
                    name: '张三'
                },
                b: [],
                c: 'hello world'
            }
            //可忽略 忽略b,c属性
            let {a} = obj;
            console.log(a);

2.3、函数参数解构

        function demo([x,y]) {
            return x+y;
        }    
        console.log(demo([1,3]));

2.4、解构用途

2.4.1、交换变量值

            let a=2;
            let b=5;
            [a,b]=[b,a];

上面代码交换变量a和b的值,这样的写法简单易读,但是要注意变量重复声明问题。

2.4.2、从函数返回多个值

函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。

        function demo() {
            return [1,2,3]
        } 
        let [a,b,c]=demo();

2.4.3、提取JSON数据

解构赋值对提取 JSON 对象中的数据,尤其有用

            let jsonData = {
                id: 42,
                status: "OK",
                data: [867, 5309]
            };
            let { id, status, data: number } = jsonData;
            console.log(id, status, number);

http://www.kler.cn/a/443050.html

相关文章:

  • (五)ROS通信编程——参数服务器
  • 【Docker项目实战】使用Docker部署Typemill轻量级平面文件CMS
  • 二、智能体强化学习——深度强化学习核心算法
  • 【Docker】docker compose 安装 Redis Stack
  • Vue3+Element给表单设置多个验证+规则Rules自定义
  • 透明部署、旁路逻辑串联的区别
  • web自动化测试框架playwright
  • 【自然资源】“三区三线”,旅游开发相互冲突怎么办?
  • 12月22日!蓝桥杯MWORKS新赛道「智能装备数字化建模大赛」总决赛暨颁奖典礼即将启幕
  • 利器 | AppCrawler 自动遍历测试工具实践(一)
  • 02-2.python入门语法一变量与数据类型2
  • C语言(结构体练习)
  • 游泳溺水识别数据集,对9984张原始图片进行YOLO,COCO JSON, VOC XML 格式的标注,平均识别率在91.7%以上
  • 高校成人教育学籍管理系统设计与实现
  • 流量分析总结(实战[INSHack2019]Passthru)
  • Linux驱动开发(15):Framebuffer子系统–LCD驱动实验
  • 【Qt】加载MySQL数据库驱动失败的解决方法
  • linux 安装redis
  • 【每日一题 基础题】[蓝桥杯 2020 省 AB3] 乘法表
  • 2025年入职/转行网络安全,该如何规划?网络安全职业规划
  • 【自动驾驶】单目摄像头实现自动驾驶3D目标检测
  • 《Django 5 By Example》阅读笔记:p551-p560
  • Ubuntu如何下载nvidia驱动和Cuda Toolkit
  • iOS swift开发系列--如何给swiftui内容视图添加背景图片显示
  • 王佩丰24节Excel学习笔记——第十三讲:邮件合并
  • 力扣--LCR 183.望远镜中的最高海拔