ES6扩展】的更多相关文章

数组和类数组对象定义 数组:[] 类数组对象:只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为他是类数组对象. 数组使用 let foo_arr = [1,2,3] let foo = (a,b,c)=>(console.log(a,b,c)) // 类数组对象以及数组 console.log(foo(...foo_arr)) 类数组使用 // 类数组对象 let obj = { 0: 'a', 1: 'b', 2: 'c', length: 3…
es6扩展运算符,也就是...  ,作用是将一个数组转为用逗号分隔的参数序列. 那么问题来了,我们为啥要用这么奇怪的东东涅,当然因为它能大大提高我们的开发效率.所以,可别小看这三个点. 1.复制数组(假如数组元素都是基本数据类型). 在es5时代,要想复制数组,最容易想到的是通过for循环一个一个push,或者来个slice()的,现在有了扩展运算符,直接一步搞定: ,,,,]; var copy = [...arr]; copy // [1,2,3,4,5]; arr === copy //f…
1.ES6 模版字符串es6 模版字符串主要用于简化字符串的拼接 <script type="text/javascript"> let obj={name:'rdb',age:'200'}; let str = '姓名:'+obj.name+',年龄:'+obj.age; //原来用+号拼接 let str = `姓名:${obj.name},年龄:${obj.age}`;//新的模板拼接,类似bash中的语法 </script> 2.字符串常用的es6扩展方…
ES6 let和const let命令 只在代码块作用域内有效 不存在变量提升(不能在申明之前赋值) 暂时性死区(在区域内不受外部变量影响) 不允许重复申明(在相同代码块区域内) 块级作用域 let为es6新增了块级作用域 {let a = ...;} 函数可以在块级作用域申明,不受外界影响 if(...) { function(){}} 注:块级作用域处大括号不能省略. const命令 立即初始化,不可改变. 类似let于的特性. 对于对象,const存储只保持地址不变,对象内属性可变,但是不…
含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[, , ]) // 1 2 3 console.log(, ...[, , ], ) // 1 2 3 4 5 [...document.querySelectorAll('div')] // [<div>, <div>, <div>] 该运算符主要用于函数调用. function push(array, ...i…
它是什么 es6中引入扩展运算符(...),它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所以typeScript也支持扩展运算符. 用在哪儿 可变参数个数的函数调用 function push(array, ...items) { array.push(...items); } function add(...vals){ let sum=0; for(let i=0;i<vals.length;i++){…
ES6的扩展运算符则可以看作是rest参数的逆运算.可以将数组转化为参数列表. 如:console.log(1,...[2,3,4],5) //1 2 3 4 5 用于合并数组: [1,2, ...more] //ES6 与解构赋值结合:  let [first,...rest] = [1,2,3,4,5]; first //1 rest //[2,3,4,5] 如果将扩展运算符用于数组复制,只能放在参数最后一位,否则会报错 [...rest,last]=[1,2,3,4,5] //报错  …
今天写了按照React小书写了Reducer,发现基础真是太重要了,所有关于上层建筑的细节都需要回到下层细节中去寻找,而且现在的基础也由ES3变成了ES6了. const ADD_USER = "ADD_USER" const DELETE_USER = "DELETE_USER" const UPDATE_USER = "UPDATE_USER" const usersReducer = (state = [], action) => {…
es6中引入扩展运算符…,它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所以typeScript也支持扩展运算符. 1.可变参数个数的函数调用 function push(array,...items) {array.push(...items)} function add(...vals){ let sum=vals; return sum;} let arr = [1,2,3,4,5,6,7];let s…
0.看文档呀 关于拓展运算符更详细的解释见 > MDN展开语法 关于剩余参数更详细的解释见 >MDN剩余参数 关于解构赋值更详细的解释见 >MDN解构赋值 直接看上面的文档更好 1.前言 最近学习vue源码的时候,看到编译类的时候一些函数用到了三点运算符,这里总结一下用法,记录一下 value = expr.replace(/\{\{(.+?)\}\}/g, (...args) => { return this.getVal(args[1], vm); }); [...childN…
1.结合扩展运算符使用.通过扩展运算符,在调用函数的时候,把一个数组展开,然后作为这个函数的参数 //结合扩展运算符使用 function foo(a,b,c){ console.log(a); //1 console.log(b); //3 console.log(c); //2 } //通过扩展运算符,在调用函数的时候,把一个数组展开,然后作为这个函数的参数 foo(...[1,3,2]); 实际应用:比如从服务端拿到了json数据,它代表用户信息的集合,相对于对象,按照一定规则使用数组,长…
1.箭头函数 在es6中,单一参数的单行箭头函数语法结构可以总结如下: const 函数名 = 传入的参数 => 函数返回的内容,因此针对于 const pop = arr => arr.pop(),其中 pop是函数名, arr是传的参数 , =>之后的内容是函数返回的内容,该函数相当于: var pop = function(arr){   arr.pop()} //箭头函数 const add1 = (a,b) => a+b; console.log(add1(2,2));…
扩展运算符(...) 1.如果一个函数的参数个数不确定,可以用其代替 eg:求若干个数的和 2.改数组的引用为复制一份内存 此刻数组a也发生了变化,因为数组b是a的一个引用 此刻相当于复制了一份a 3.合并数组 4.和解构赋值结合使用 注意:数组解构,扩展运算符必须放在最后,不然会报错  5.将字符串转换为数组 6.实现了 Iterator 接口的对象 document.querySelectAll()选择器获取的一组dom解构并非是数组,通过扩展运算符可以转换为真正的数组 我们发现浏览器自带的…
对象的扩展运算符理解对象的扩展运算符其实很简单,只要记住一句话就可以: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 let bar = { a: 1, b: 2 };let baz = { ...bar }; // { a: 1, b: 2 }上述方法实际上等价于: let bar = { a: 1, b: 2 };let baz = Object.assign({}, bar); // { a: 1, b: 2 }Object.assign方法用于对象的…
1.字符串扩展 1. includes(str) : 判断是否包含指定的字符串 2. startsWith(str) : 判断是否以指定字符串开头 3. endsWith(str) : 判断是否以指定字符串结尾 4. repeat(count) : 重复指定次数 2.数值扩展 1. 二进制与八进制数值表示法: 二进制用0b, 八进制用0o 2. Number.isFinite(i) : 判断是否是有限大的数 3. Number.isNaN(i) : 判断是否是NaN 4. Number.isIn…
模板字符串和标签模板 const getCourseList = function() { // ajax return { status: true, msg: '获取成功', data: [{ id: 1, title: 'Vue 入门', date: 'xxxx-01-09' }, { id: 2, title: 'ES6 入门', date: 'xxxx-01-10' }, { id: 3, title: 'React入门', date: 'xxxx-01-11' }] } }; con…
1.简洁表达法. 当属性名与属性值相同时,可省略属性值:例如:{name : name}可以写成 {name} 属性方法中,可省略冒号与function,直接 属性名(){}即可.例如{say : function(arr){}}可以写成{say(arr){}} es5的写法: //es5: const getUserInfo = (id = 1) => { //ajax ... const name = 'xiaoming'; const age = 10; return{ name: nam…
1.结合扩展运算符 //剩余参数是做聚合的,扩展运算符是做展开的 function sum(...args){ console.log(arguments); console.log(arguments instanceof Array); //false 因为它是一个类数组对象 //以下代码均可将类数组转成数组 //let args = Array.prototype.slice.call(arguments); //let args = [...arguments]; //let [...a…
//下面三行代码效果一样 //全局匹配开头为a的 const regexp1 = /^a/g; const regexp2 = new RegExp('a','g'); const regexp3 = new RegExp(/^a/); const regexp4 = new RegExp(/a/); console.log('aabbcc'.match(regexp1)); //['a'] console.log('bbaacc'.match(regexp1)); //null console…
${ } 模板字符串占位符 需要用反引号` ` 1.模板字符串 `${变量}` const xiaoming = { name:'xiaoming', age:14, say1:function(){ console.log('我叫'+ this.name + ',我今年'+this.age +'岁!'); }, say2:function(){ console.log(`我叫${`Mr.${this.name.toUpperCase()}`},我今年${this.age}岁!`); } } x…
...运算符用于操作数组,有两种层面 1. 第一个叫做 展开运算符(spread operator),作用是和字面意思一样,就是把东西展开.可以用在array和object上都行. 比如: let a = [1,2,3]; let b = [0, ...a, 4]; // [0,1,2,3,4] let obj = { a: 1, b: 2 }; let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 } let obj3 = { ...obj, a: 3…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <div></div> <div></div> <div></div> </head> <body> <script type="text/javascript&quo…
http://www.cnblogs.com/chrischjh/p/4848934.html…
1.Array.from(objec,回调函数)将一个ArrayLike对象或者Iterable对象(类数组对象)转换成一个数组 1)该类数组对象必须具有length属性,用于指定数组的长度.如果没有length属性,那么转换后的数组是一个空数组 2)该类数组对象的属性名必须为数值型或字符串型的数字 //新的方法 //Array.from可以把一个类数组的对象转成数组 //该类数组对象的属性名必须为数值型或字符串型的数字 const obj = { 0:1, 1:22, 2:false, len…
1.函数的默认参数 //函数的默认参数 function add(a, b = 999){ console.log(a,b); //1 999 } add(1); 2. 函数的形参可以设置默认值,默认值可以与前一个参数进行相加等运算,但不能和自身或后一个参数进行运算,否则报错: //参数b后面不能出现b后面的变量或b本身,会报错 function add1(a, b = 999 + a){ console.log(a, b); //1 1000 } add1(1); 3.将函数的默认值&解构赋值…
1.0o代表八进制 0b代表二进制 ,通过Number()可转为10进制: //0o 0O octanary八进制 //0b 0B binary二进制 console.log(0o16); //14 console.log(0b1111); //15 2.parseInt方法从window换到了Number下面 Number.parseInt(1.23) Number.parseInt Number.parseFloat console.log(window.parseInt('1.23'));…
1.padStart padEnd(count, 字符串) 补全字符串 //padStart(num,str) padEnd补全一个字符串的长度 //num表示补全到几位,str是用来填充的字符串 { let str = 'i'; let str1 = str.padStart(6,'mooc') //moocmi console.log(str1); let str2 = str.padEnd(5,'mooc'); console.log(str2); } 2.repeat(count) 重复…
1. 第一个叫做 展开运算符(spread operator),作用是和字面意思一样,就是把东西展开.可以用在array和object上都行. let a = [1,2,3]; let b = [0, ...a, 4]; // [0,1,2,3,4] let obj = { a: 1, b: 2 }; let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 } let obj3 = { ...obj, a: 3 }; // { a:3, b:2 } 2.…
来自为知笔记(Wiz)…
参考: es6 扩展运算符 三个点(...) 经常回顾,方能真正掌握. 一.含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll('div')] // [<div>, <div>, <di…