Vue的三个点es6知识,扩展运算符
Vue中的三个点在不同情境下的意思
- 操作数组
//里面放自己定义的方法
methods: {
/**
* 把数组中的元素孤立起来
*/
iClick() {
let iArray = ['1', '2', '3'];
console.log(...iArray);
// 打印结果 1 2 3
},
/**
* 在数组中添加元素
*/
iClick3() {
let iArray = ['1', '2', '3'];
console.log(['0', ...iArray, '4']);
// 打印结果 ["0", "1", "2", "3", "4"]
},
/**
* 在数组中删除元素(取出一个元素)
* 与结构赋值的结合
* 如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
*/
iClick8() {
const [first, ...rest] = [1, 2, 3, 4, 5];
console.log(first);
// 打印结果 1
console.log([...rest]);
// 打印结果 [2, 3, 4, 5]
const [one, ...last] = ["foo"];
console.log(one);
//打印结果 foo
console.log([...last]);
//打印结果 []
},
/**
* 数组的合并
*/
iClick6() {
// ES6 的写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1.push(...arr2);
console.log(arr1);
// 打印结果 [0, 1, 2, 3, 4, 5]
},
/**
* 数组的合并(推荐使用)
*/
iClick7() {
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
console.log([...arr1, ...arr2]);
// 打印结果 [0, 1, 2, 3, 4, 5]
},
/**
* 将字符串转成数组
*/
iClick9() {
let iString = 'woshizhongguoren';
console.log([...iString]);
// 打印结果 ["w", "o", "s", "h", "i", "z", "h", "o", "n", "g", "g", "u", "o", "r", "e", "n"]
},
/**
* Map 和 Set 结构, Generator 函数
*/
iClick10() {
let map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three'],
]);
let arr = [...map.keys()];
console.log(arr);
// 打印结果 [1, 2, 3]
},
/**
* 当做参数传递
* 和直接传数组的区别
*/
iClick4() {
let iArray = ['1', '2', '3'];
//注意传的时候,就要三个点
this.hanshu(...iArray);
},
hanshu(...iArray) {
let ooo = 1;
console.log(...iArray);
// 打印结果 1 2 3
},
/**
* 求出最大值
*/
iClick5() {
let iArray = [1, 2, 3, 99, 44, 66, 21, 85, 77];
let ooo = Math.max(...iArray);
console.log(ooo);
// 打印结果 99
},
/**
* 如果对没有iterator接口的对象,使用扩展运算符,将会报错。
*/
iClick11() {
let obj = {
name: 'zhh',
age: '20'
}
console.log([...obj]);
},
}
- 操作对象
methods: {
/**
* 添加一个属性
*/
method3() {
let a = {age: 18, id: 10};
// 把 name 属性,放到对象中
let c = {name: 'zhh', ...a};
console.log(c);
// 打印结果 {name: "zhh", age: 18, id: 10}
},
/**
* 修改一个属性
*/
method2() {
let a = {name: 'zhh', age: 18, id: 10};
//先拿到a, 后面的name:zhh1,把 a 中name 的值替换掉了
let c = {...a, name: 'zhh1'};
console.log(c);
// 打印结果 {name: "zhh1", age: 18, id: 10}
},
/**
* 删除一个属性(拿出属性或者对象)
*/
method1() {
let a = {name: 'zhh', age: 18, id: 10};
let {name, ...c} = a;
console.log(name, c);
// 打印结果 zhh {age: 18, id: 10}
},
}
...mapState 和 ...mapActions 都是 ... 的扩展, 将state中的变量或者方法 提取出来并展开, 是mapState 和 mapActions 的一种简便用法
参考文章:
Vue的三个点es6知识,扩展运算符的更多相关文章
- ES6,扩展运算符的用途
ES6的扩展运算符可以说是非常使用的,在给多参数函数传参,替代Apply,合并数组,和解构配合进行赋值方面提供了很好的便利性. 扩展运算符就是三个点“...”,就是将实现了Iterator 接口的对象 ...
- es6之扩展运算符 三个点(...)
对象的扩展运算符理解对象的扩展运算符其实很简单,只要记住一句话就可以: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 let bar = { a: 1, b: 2 ...
- 十、es6之扩展运算符 三个点(...)
对象的扩展运算符 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 let bar = { a: 1, b: 2 }; let baz = { ...bar }; / ...
- ES6数组扩展运算符
1 扩展运算符的运用 (1)复制数组 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据机构的指针,而不是克隆一个全新的数组; const a1=[1,2]; const a2= a1; a2 ...
- es6的扩展运算符
扩展运算符用三个点号表示,功能是把数组或类数组对象展开成一系列用逗号隔开的值,扩展运算符有几点作用: 一,展开数组 //展开数组 let a = [1,2,3,4,5], b = [...a,6,7] ...
- ...:ES6中扩展运算符(spread)和剩余运算符(rest)详解
1.扩展运算符(spread) demo1:传递数据代替多个字符串的形式 let test= function(a,b,c){ console.log(a); console.log(b); cons ...
- ES6之扩展运算符
一 将数组转换为用逗号分隔的参数序列 let turtles = ['Leo','Raph','Mikey','Don']; console.log(...turtles); 二 在解构赋值时使用 l ...
- ES6 扩展运算符 三个点(...)
它是什么 es6中引入扩展运算符(...),它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所以typeScrip ...
- ES6数组的扩展运算符
一.基本使用 ES6中函数可以使用 rest参数 接收函数的多余参数,组成一个数组,放在形参的最后面. let fn = (a, ...value) => { console.log(a); c ...
随机推荐
- Linux (Ubuntu)上面安装maven
1 首先检查linux上是否有maven mvn -v 或者mvn -version 如果没有安装,提示如下: ubuntu@ip----:~$ mvn -v The program 'mvn' ca ...
- CORS,jsonp解决跨域问题
同源和跨域 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上 ...
- 转载:深入理解Spring MVC 思想
原文作者:赵磊 原文地址:http://elf8848.iteye.com/blog/875830 目录 一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.sp ...
- JAVA 程序员代码生成利器
http://www.grails.org/ 为什么要用Grails 采用groovy 开发,基于springboot+ hibernate ,groovy 语言层面运行效率稍微差点,但开发效率比j ...
- Redis的大白话解释
Redis的官方解释可以百度,这里讲redis缓存为啥速度非常快! 这么说吧,别人问你什么是“redis”,如果你知道,你可以直接吧啦吧啦一大堆,其实这个时候你的大脑就类似redis缓存,别人问的“r ...
- C#规范整理·资源管理和序列化
资源管理(尤其是内存回收)曾经是程序员的噩梦,不过在.NET平台上这个噩梦似乎已经不复存在.CLR在后台为垃圾回收做了很多事情,使得我们现在谈起在.NET上进行开发时,都会说还是new一个对象吧!回收 ...
- 零零散散的python笔记
Python strip()方法 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列. #!/usr/bin/python # -*- coding: UTF-8 -*- str = &qu ...
- inxi 查看国产服务器的硬件配置信息
下载inxi 查看国产服务器的信息 https://codeload.github.com/smxi/inxi/tar.gz/3.0.35-1 注意查看命令是 ./inxi -F 2. 直接是二进制包 ...
- 脚本(bat、shell)调用conda
官网说明:https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#using-conda-in-w ...
- 解决连接HIS连接不上数据库的问题
运行程序单步运行,设置断点 配置HIS中的 GetDataBaseInfo类,将与本机无关的配置函数全部删除,(按照DMHospital.ini文件来对照修改),如下图: 往数据库中所创建的表中添加数 ...