es6 ...运算符
时间:2018-09-09 23:07:10来源:杰瑞文章网点击:作文字数:300字
作文导读:情景描述
经常会看到...props
无状态组件的参数中
或者是在函数定义的参数中
坑
请不要把只要出现...的地方当做同一个操作符
剩余操作符
通常用于函数定义时的最后一个参数
...a:a是一个数组
相当于是整和
扩展语法
类似于结构赋值
相当于是将一个对象或者一个数组中的每一个元素全部都解构出来单独使用
相当于是解构
扩展语法
用于函数调用时的参数
const func = (a,b,c) => {
//*****
}
const array = [1,2,3]
func(...array)
当做函数调用时候的参数就相当于是扩展
将每个元素扩展开来当做函数的一个参数
用于react传递props属性
render() {
const obj = {name:'zp' ,age: 20}
return (
)
}
const Children = (props) => {
console.log(props.name)
console.log(props.age)
}
//这样的好处:如果不使用扩展运算符render函数就需要这么写
render() {
const obj = {name:'zp' ,age: 20}
return (
name = {obj.name}
age={obj.age}
/>
)
}
//这就相当于把对象的名字作为属性传给子组件使用
大大减少代码数量
用于数组的拼接和排序
const a = [1,2,3]
const b = [4,5,6]
const c = [...b,...a]
用于reducer,产生新对象(新引用)
对于reducer而言如果返回的对象或者数组没有改变引用,他就会认为store中的数据没有变化过所以不会触发组件重新render(即使可能数组或对象中的某一项确实发生变化)
使用扩展运算符即使元素没变(内容)也会产生一个全新的对象或者数组(新引用)一定保证了store可以更新触发新的render(可以代替Object.assign存在)
const initState = {
name: 'pp',
age: 20
}
const reducer = (action,state) => {
switch (action.type) {
case *** :
return {...state,{name:'aa'}}
}
}
总结:使用扩展运算符的对象或者数组,都是为了将其中的每一个元素可以独立的使用
剩余操作符
使用场景我见到的好像只有在函数定义的时候
当不确定会返回几个参数的时候直接使用...params代替
params就会变成一个数组 收录传入的参数当做数组中的一个元素
总结:剩余操作符和扩展操作符是一个相反的过程,用来将数据整合在一个数组中
情景描述
经常会看到...props
无状态组件的参数中
或者是在函数定义的参数中
坑
请不要把只要出现...的地方当做同一个操作符
剩余操作符
通常用于函数定义时的最后一个参数
...a:a是一个数组
相当于是整和
扩展语法
类似于结构赋值
相当于是将一个对象或者一个数组中的每一个元素全部都解构出来单独使用
相当于是解构
扩展语法
用于函数调用时的参数
const func = (a,b,c) => {
//*****
}
const array = [1,2,3]
func(...array)
当做函数调用时候的参数就相当于是扩展
将每个元素扩展开来当做函数的一个参数
用于react传递props属性
render() {
const obj = {name:'zp' ,age: 20}
return (
)
}
const Children = (props) => {
console.log(props.name)
console.log(props.age)
}
//这样的好处:如果不使用扩展运算符render函数就需要这么写
render() {
const obj = {name:'zp' ,age: 20}
return (
)
}
//这就相当于把对象的名字作为属性传给子组件使用
大大减少代码数量
用于数组的拼接和排序
const a = [1,2,3]
const b = [4,5,6]
const c = [...b,...a]
用于reducer,产生新对象(新引用)
对于reducer而言如果返回的对象或者数组没有改变引用,他就会认为store中的数据没有变化过所以不会触发组件重新render(即使可能数组或对象中的某一项确实发生变化)
使用扩展运算符即使元素没变(内容)也会产生一个全新的对象或者数组(新引用)一定保证了store可以更新触发新的render(可以代替Object.assign存在)
const initState = {
name: 'pp',
age: 20
}
const reducer = (action,state) => {
switch (action.type) {
case *** :
return {...state,{name:'aa'}}
}
}
总结:使用扩展运算符的对象或者数组,都是为了将其中的每一个元素可以独立的使用
剩余操作符
使用场景我见到的好像只有在函数定义的时候
当不确定会返回几个参数的时候直接使用...params代替
params就会变成一个数组 收录传入的参数当做数组中的一个元素
总结:剩余操作符和扩展操作符是一个相反的过程,用来将数据整合在一个数组中

es6 ...运算符一文由杰瑞文章网免费提供,本站为公益性作文网站,此作文为网上收集或网友提供,版权归原作者所有,如果侵犯了您的权益,请及时与我们联系,我们会立即删除!
杰瑞文章网友情提示:请不要直接抄作文用来交作业。你可以学习、借鉴、期待你写出更好的作文。
说说你对这篇作文的看法吧