码迷,mamicode.com
首页 > 其他好文 > 详细

ES6 之函数扩展和对象扩展

时间:2019-12-29 23:23:10      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:muti   util   das   地方   默认   作用   对象   属性表   作用域   

简单记录,方便快速复习~

函数扩展: 参数默认值、rest 参数、扩展运算符、箭头函数、尾调用...

对象扩展: 简洁表示、属性表达式、新增API等...

//函数扩展

// 参数默认值
function fn(x,y=1){
  console.log(x+y)
}
fn(2)
{ // 注意作用域
  let x = 1
  function test(x,y=x) {
    console.log(x,y)
  }
  test(2) // 2 2 
}
{ // 注意作用域
  let x = 1
  function test1(a,y=x){
    console.log(a,y)
  }
  test1(2) // 2 1
}


// rest参数
function fn1(...args) {
  console.log(args)
}
fn1(1,2,3)

function fn2(x,y,...z){
  console.log(z)
}
fn2(1,2,3,4,5)

// 扩展运算符
{
  console.log(‘a‘,...[1,2,3,4])
}

// 箭头函数 —— 注意this指向问题
// ES5 中 this指向函数调用的地方, ES6中 this指向函数定义的地方
let fn4 = (x,y) => {
  console.log(x + y)
}
console.log(typeof fn4)
fn4(1,3)

// 尾调用
function util(x) {
  console.log(x)
}
function mUtil(x) {
  return util(x)
}
mUtil(1)

// 对象扩展
// 简洁表示
{
  let a = 1,b = 2
  let es5 = {
    a: a,
    b: b
  }
  console.log(es5)
}
{
  let a =1, b = 2
  let es6 = {
    a,
    b
  }
  console.log(es6)
}

let es5_method = {
  sum: function(x,y) {
    console.log(x+y)
  }
}
es5_method.sum(1,2)

let es6_method = {
  sum(x,y) {
    console.log(x+y)
  }
}
es6_method.sum(1,2)
// 属性表达式
let a = "name"
let es6_obj = {  // [a] 是一个表达式
  [a]: "zhangsan"
}
console.log(es6_obj)
// 新增API
console.log( Object.is(‘abc‘,‘abc‘) ) //等同于 ===
console.log(Object.is([],[])) //false

console.log(‘浅拷贝‘,Object.assign({a:‘a‘},{b: ‘b‘}))
{ 
let {a,b,...c} = {a: ‘a‘,b:‘b‘,c: ‘c‘,d: ‘d‘}
console.log(c)
}

  

ES6 之函数扩展和对象扩展

标签:muti   util   das   地方   默认   作用   对象   属性表   作用域   

原文地址:https://www.cnblogs.com/lk-food/p/12116900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!