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

后端程序员的前端必备【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.kler.cn/a/17946.html

相关文章:

  • 「Mac玩转仓颉内测版12」PTA刷题篇3 - L1-003 个位数统计
  • 解锁微前端的优秀库
  • PHP多门店医疗服务系统小程序源码
  • 密码学的基本原理
  • WebGIS三维地图框架--Cesium
  • Elastic Observability 8.16:增强的 OpenTelemetry 支持、高级日志分析和简化的入门流程
  • 测试20K要什么水平?25岁测试工程师成功斩下offer(附面试题)
  • 校园网自动登陆(河南科技学院)
  • cartographer源码阅读---位姿推测器
  • 榜单!直接式TPMS前装搭载率突破60%,哪些厂商在领跑
  • 2008-2020年上市公司能源消耗数据
  • MySQL知识学习06(SQL语句在MySQL中的执行过程)
  • 使用循环数组和环形链表实现双端队列
  • PVE 安装 windows10
  • 三十、组播技术——IGMP、IGMP-snooping、PIM-DM、PIM-SM
  • LiveData详解(实战+源码+粘性事件解决方案)
  • 亚马逊云科技开启您的云财务管理之旅:云财务运营
  • 电子招标采购系统源码之什么是电子招投标系统?
  • JavaScript的ES6
  • 作者等级与权益说明
  • 系统分析师之系统设计(十五)
  • 成为数据分析师,需要具备哪些技能?
  • 米哈游测开岗 【一面总结】
  • FT2000+ qemu kvm openEuer crash 分析 频繁设置CPU online及cgroup导致进程卡死、不调度故障
  • Go数据结构---可变长数组
  • 正则表达式 - 字符组