es6语法概要

news/2024/9/21 11:26:18/

es6_0">es6语法概要

目录

  • es6语法概要
    • let/const
    • 箭头函数
    • 模版字符串
    • 解构赋值
      • **数组结构**
      • **对象解构**
      • **函数返回值解构**
    • 默认参数
    • 模块化

let/const

es6以后就不建议使用var变量了,let和const在语义上比var更清晰,使代码的可读性、安全性更符合现代JS的编程标准

// 使用 var 声明变量
var a = 1;
var a = 2; // 可以重复声明// 使用 let 声明变量
let b = 3;
// let b = 4; // 无法重复声明,会报错// 使用 const 声明常量
const c = 5;
// c = 6; // 无法重新赋值,会报错// 块级作用域示例
function example() {var varVariable = "var";let letVariable = "let";const constVariable = "const";if (true) {var varVariable = "var updated";let letVariable = "let updated"; // 不会影响外部的 letVariableconst constVariable = "const updated"; // 会报错,const 在块级作用域中也是不可重复声明的console.log(varVariable); // var updatedconsole.log(letVariable); // let updatedconsole.log(constVariable);}console.log(varVariable); // var updatedconsole.log(letVariable); // letconsole.log(constVariable); // const
}example();
  • **const声明常量:**使用 const 声明的变量不能再次被赋值,防止意外的数据变动
  • **let声明局部变量:**它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束
  • 暂时性死区:letconst 在声明之前不可访问
  • **不可重复声明:**使用 letconst 声明的变量不允许重复声明,而 var 可以重复声明相同的变量名,容易引起混乱

箭头函数

es6 新增了箭头函数,箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。任何可以使用函数表达式的地方,都可以使用箭头函数,并且在Vue中使用箭头函数不会出现this指向不同的问题,同时还能一定程度的简化代码

// 普通函数
var f = function (a){console.log(a)
}
// 箭头函数[无参无返回值]
var f = () => {console.log('无参无返回值箭头函数')
}
// 箭头函数[单参无返回值]
var f = a => {console.log(a)
}
// 箭头函数[多参无返回值]
var f = (a,b) => {console.log(a, b)
}
// 箭头函数[单参有返回值]
var f = a => {return a + 'Hello World'
}
// 箭头函数[单参有返回值简写]
var f = a => a + 'Hello World'
  • 示例:按钮绑定函数,使目标数组完成过滤
<div id="app"><button @click="handleFunc1(info)">按钮1</button><p>{{info}}</p>
</div>
  • 原函数
handleFunc1(a){this.info = this.info.filter(function (a){return a===1})
  • 箭头函数
handleFunc1(a){this.info = this.info.filter(a => a === 1)
})
  • 如果只有一个参数,那也可以不用括号。只有没有参数,或者多个参数的情况下,才需要使用括号

模版字符串

模版字符串在需要大量字符串拼接时会比老语法''+''简便很多

es6之前的字符串拼接

let name = '张三'
let age = 18
console.log('我是'+name+',今年'+age)

es6模版字符串拼接

let name = '张三'
let age = 18
console.log(`我是${name},今年${age}`)

解构赋值

数组结构

let nameList = ['张三','李四','陈五']let [name1,name2,name3] = nameList
console.log(name1,name2,name3)
// 张三 李四 陈五let [name4,name5] = nameList
console.log(name4,name5)
// 张三 李四

对象解构

let nameDict = {'name1': '张三', 'name2': '李四', 'name3': '陈五'}let {name1, name2, name3} = nameDict
console.log(name1, name2, name3)
// 张三 李四 陈五let {name4, name5} = nameDict
console.log(name4, name5)
// undefined undefined

对象名与接受参数名不符时则不会被解构

let nameDict = {'name1': '张三', 'name2': '李四', 'name3': '陈五'}let {name7, name2, name3} = nameDict
console.log(name7, name2, name3)
// undefined  李四 陈五

函数返回值解构

function getuserInfo() {return {name: '张三', age: 18, hobby: ['run', 'drink']}
}let {name, hobby} = getuserInfo()
console.log(name, hobby)
// 张三 ['run', 'drink']

默认参数

如果调用函数时不传参则会以默认参数为准

function test(name, age = 19) {console.log(name, age)
}test("张三", )
// 张三 19

模块化

  • 在要导出的文件中用export将数据导出
// test.js
export const name = '张三'
export function add(a,b){return a+b}
  • 在要导入的文件用import {} from '...'导入
// test.html
import {name, add} from './test.js'console.log(name, add(10, 5))
// 张三 15
  • *导入全部和as重命名
// test.html
import * as q from './test.js'console.log(q.name, q.add(10, 5))
// 张三 15
  • export default,将所有参数合并到对象中导出
// test.js
export default {name: '张三',add: function (a, b) {return a + b}
}
// test.html
import xxx from './test.js'console.log(xxx.name, xxx.add(10, 5))
// 张三 15

http://www.ppmy.cn/news/1451917.html

相关文章

Kubernetes学习笔记06

第十六章、Kubernetes容器交付介绍 如何在k8s集群中部署Java项目 容器交付流程 开发代码阶段 编写代码编写Dockerfile【打镜像做准备】持续交付/集成 代码编译打包制作镜像上传镜像仓库应用部署 环境准备PodServiceIngress运维 监控故障排查应用升级 k8s部署Java项目流程 …

Java_从入门到JavaEE_07

一、数组的排序&#xff08;冒泡排序&#xff09; 原理&#xff1a; 从下标“0”开始&#xff0c;相邻两个元素依次进行比较&#xff0c;每次找出最大的往后移动。 规律&#xff1a;N个数字来排队&#xff0c;两两相比小靠前&#xff0c;外层循环N-1&#xff0c;内层循环N-1-i…

深入探索微信小程序:图像处理与优雅预览的艺术

深入探索微信小程序&#xff1a;图像处理与优雅预览的艺术 微信小程序中的图片基础一、图片上传与压缩二、图片预览技巧三、图片处理进阶&#xff1a;Canvas与滤镜四、性能优化与最佳实践参考资料 微信小程序中的图片基础 图片资源存储&#xff1a;本地资源与网络资源的使用区…

蓝桥杯国赛填空题(跑步计划)

问题描述 小蓝计划在某天的日期中出现 1 时跑 5 千米&#xff0c;否则只跑 1 千米。注意日期中出现 1 不仅指年月日也指星期。 请问按照小蓝的计划&#xff0c; 2023 年小蓝总共会跑步锻炼多少千米?例如&#xff0c; 5 月 1 日、 1 月 13 日、 11 月 5 日、 4 月 3 …

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(七)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 14 节&#xff09; P14《13.ArkUI组件-自定义组件》 将可变部分封装成组件的成员变量&#xff1a; 1、首先给标题添加两个图标&am…

Linux的vim下制作进度条

目录 前言&#xff1a; 回车和换行有区别吗&#xff1f; 回车和换行的区别展示&#xff08;这个我在Linux下演示&#xff09; 为什么会消失呢? 回车和换行的区别 为什么\r和\n产生的效果不同&#xff1f; 打印进度条&#xff1a; &#xff08;1&#xff09;打印字符串 …

Grafana 添加一台管理服务器

1、修改prometheus.yml 添加新服务器信息 2、重启pro 3、导入node文件 4、启动node 5、检验数据

Visio 2024 Preview安装并恢复原有Office

文章目录 前言一、卸载Office并安装VisioOffice Tool Plus软件下载Office Tool Plus软件安装Office Tool Plus部署Visio 二、下载已购office产品并安装结语 前言 提示&#xff1a;通过本文方法&#xff0c;可以最终实现Visio和原装正版Office同时存在同一台电脑&#xff0c;建…