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

后端程序员的前端必备【Vue】 - 07 ES6新语法

ES6新语法

  • 1 let定义变量
  • 2 const定义常量
  • 3 模板字符串
  • 4 方法默认值
  • 5 箭头函数
  • 6 解构
    • 6.1 对象解构
    • 6.2 数组解构
    • 6.2 使用解构实现变量交换
  • 7 Spread Operator
  • 8 模块化编程

1 let定义变量

使用let定义变量能更加精准的确定变量的作用域

//for(var i = 0 ; i < 10 ; i++){}
for(let i = 0 ; i < 10 ; i++){}
console.log(i); 

2 const定义常量

使用const定义常量,常量一旦定义不可以改变

const a = 10;
a = 20;//Assignment to constant variable.

3 模板字符串

使用模板字符串可以避免大量的字符串拼接

var name = "cxk";
console.log("欢迎"+name+"登录中...");//字符串拼接
console.log(`欢迎${name}登录中...`);//模板字符串

4 方法默认值

类似于springmvc中接受参数拥有默认值

function f1(a=10 , b={name:'haha'}){console.log(a);console.log(b);
}
f1();  //没有传递参数,则使用默认值
f1("a","b"); //传递参数,则使用传递的参数

5 箭头函数

使用箭头函数可以简化复杂的代码结构(类似于java中lambda表达式)

//使用ES5的语法定义函数
//var f1 = function (a,b){
// 	return a+b;
// }
//使用ES6的语法定义函数
var f2 = (a,b) =>  a+b
console.log(f2(10,20));

箭头函数应用

//1、定义数组获取数组中所有的偶数
let arr = [1,2,3,4,5,6,7];
//使用传统方式
// arr = arr.filter(function(num){
// 	if(num % 2 == 0){
// 		return num;
// 	}
// })
//使用箭头函数
arr = arr.filter(num => num % 2 == 0)
console.log(arr);//2、定义数组获取名称包含‘a’字符,且长度大于6的元素
let arr = ['zhangsan','lisi','wangwu','zhaoliu'];
//使用传统方式
// arr = arr.filter(function(name){
// 	if(name.indexOf('a') > 0 && name.length > 6){
// 		return name;
// 	}
// })
//使用箭头函数
arr = arr.filter(name => name.indexOf('a')>-1 &&  name.length > 6 );
console.log(arr);

6 解构

定义:从一个大的数组或对象中提取个别值使用

6.1 对象解构

//对象解构:
//获取user对象中的name、age属性let user = {name:'zs',age:20,sex:'男'};
// let name = user.name;
// let age = user.age;
// console.log(name,age);//使用解构
// let {name,age} = user;
// console.log(name,age)//如果新对象的属性名不一致的时候需要指定名称
let {name:name1,age:age1} = user;
console.log(name1,age1)

6.2 数组解构

//数组解构
let produts =[{name:"小米",price:3999},{name:"华为",price:4999},{name:"苹果",price:6999},{name:"三星",price:5999},]let p1,p2;
[p1,p2] = produts;
console.log(p1);
console.log(p2);
//取出第三第四个对象
[,,p1,p2] = produts;
console.log(p1,p2);

6.2 使用解构实现变量交换

let a = 10;
let b = 20;
[a,b] = [b,a];
console.log(a,b);

7 Spread Operator

通过不定参数实现解构

  • 常用于JSON对象
//数组拼接
let arr1 = [1,3,4,5];
let arr2 = [100,200];
let arr3 = [...arr1,...arr2];
console.log(arr3);//对象
let user = {name:'jack',gender:'男'};
let userInfo = {...user,age:30};
console.log(userInfo);

8 模块化编程

使用模块化编程可以减少大量的js库的引入,拆分的功能相互独立,可以单独测试(java中的解耦)

注意的点:

  • 使用export default 向外暴露的成员,可以使用任意的变量来接收
  • 在一个模块中,export default 只允许向外暴露1次
  • 在一个模块中,可以同时使用 export default 和 export 向外暴露成员(方法、变量、对象)
  • 目前浏览器上还不支持ES6的导入导出语法。需要在设置js的类型为module <script type="module">

导出模块

//导出add方法,default表示默认方法(有且仅有一个default导出)
export default function add(a,b){return a+b;
}
//导出其他方法
export function f1(){console.log("导出f1函数");
}//导出变量
export let username = 'admin';//导出对象
export let user = {name:'zs',age:30
}

导入模块

  • 没有使用default修饰的内容必须写在{}中,且名称保持一致
  • 导入default模块可以自己制定名字
<script type="module">//导入模块  导入default模块可以自己制定名字。其他的导入需要方法{}中,且名称保持一致import add2,{f1,username,user} from './js/test.js';console.log(add2(10,20));f1();console.log(username);console.log(user.name,user.age);
</script>
http://www.lryc.cn/news/65592.html

相关文章:

  • AI落地:程序员如何用AI?
  • 掌握优化+创新模式,轻松提升APP广告eCPM
  • 在docker上安装运行Python文件
  • RocketMQ第三节(生产者和消费者)
  • 人大金仓亮相国际金融展,打造“金融+产业+生态”创新模式
  • Syslog-ng RHEL 的安装和配置
  • 得物直播低延迟探索 | 得物技术
  • 【CVPR红外小目标检测】红外小目标检测中的非对称上下文调制(ACM)
  • Axios概述
  • 用右雅克比对旋转矩阵进行求导
  • 高性能HMI 走向扁平化
  • 虚幻引擎配置物体水面浮力的简便方法
  • WatchGuard 防火墙策略、配置和日志分析器
  • Web自动化测试——XAPTH高级定位
  • CentOS 7 安装 Nginx
  • Databend 开源周报第 91 期
  • 【Ubuntu18.04使用yolov5教程】
  • CocoaPods如何发布新版本的Pod Library
  • v4l2框架
  • vue项目中生成LICENSE文件
  • NewBing最新更新使用体验(无需等待人人可用)
  • 欧拉奔赴品牌2.0时代,女性汽车真实用户需求被定义?
  • 机器视觉工程师,听我一句劝,别去外包,干了三年,废了....对女人没了兴趣
  • PBDB Data Service:Special parameters(特殊参数)
  • 腾讯云轻量应用服务器使用限制说明(十大限制)
  • Python每日一练(20230507) 丑数I\II\III、超级丑数
  • K8S常见异常事件与解决方案
  • 测试5年从中兴 15K 跳槽去腾讯 32K+16,啃完这份笔记你也可以
  • CentOS 临时IP与永久IP配置
  • 集线器、网桥、交换机