ES6--函数与对象,新字符串

1、函数默认参数  

function sum (a,b){                                                  
  a = a||0  //为a设置默认值,当未给a赋值时a=0 
  b = b||0  //为b设置默认值,当未给b赋值时b=0                              
}
return a+b  
sum(1)  //值为1,此时默认b的值为0
sum(1,2)  //值为3,当a和b都赋值时,就不取他们的默认值
b = b||0 一句话等价于 if (b){
                         b = b
                     }else{
                         b = 0
                     }  
上面的形式也可以直接写成:
function sum(a=0,b=0){
    return a+b
}
sum(参数1,参数2)

2、在不知道参数个数的情况下求和

function sum(){
  let result = 0
  for(let i=0;i<arguments.length;i++){
    result += arguments[i]
  }
  return result  
}

sum(1,2,3,4,5)  //15

3、剩余参数求和

function sum(message,...numbers){
  result = numbers.reduce((p,v)=>p+v,0)
  return message + result
}

sum('结果是',1,2,3,4,5,6,7,8,9,10)  //结果是55

将arguments伪数组转为真数组

function sum(message){
  let args = Array.prototype.slice.call(arguments)  //ES5
  let args = Array.from(arguments)  //ES6
  let args = [...arguments]  //ES6 前三句话功能一致,都是将arguments转为真数组

  let numbers = arguments.slice(1)
  result = numbers.reduce((p,v)=>p+v,0)
  return message+result
}

4、展开操作

var array1 = [1,2,3,4,5,6,7]
var [a,b,c,...array2] = array1
console.log(array2)  //[4,5,6,7]

5、交换a和b的值

var a = 1
var b = 2;  //这一行的分号必须要加,否则JS的语法会将中括号向上一行提升,导致报错
[a,b] = [b,a]  

6、解构赋值

var frank = {name:'frank',age:18,gender:'Male'}
var name = frank.name                 //ES6语法中,这一行相当于左边倒数的三行 var{name,age,gender} = frank (等号左边frank是被解构对象)
var age = frank.age  
var gender = frank.gender

7、...做对象浅拷贝和对象合并

浅拷贝:

let objA = {
  name: {
    x:'a'
  }
}
let objB = {...objA}
console.log(objB)  //{name:{x:"a"}}

对象合并:

let onjA = {
  p1 = 1,
  p2 = 2
}
let objC = {
  p1 = 111,
  p3 = 3
}
let objB = Object.assign({},objA,objC)  //写法2 let objB = {...objA,...objC}
console.log(objB)  //{p1:111,p2:2,p3:3}

深拷贝:

JSON.parse(JSON.stringify(data))

8、新字符串

 i.多行字符串及字符串里插入变量

    结果里有四个回车

var string = `
  <div>
    <p>${ text }</p>  //${ 这里面的 空格 都会被 忽略 }
  </div>
`   

    结果里没有回车

var string = "<div>" + 
  "<p>" + text + "</p>" +
"</div>"  

  ii.函数接字符串  

var name = '月月'
var person = '人'
var fn = function(){
  let strings = arguments[0]
  let var1 = arguments[1]
  let var2 = arguments[2]
  if(var1 === '芳芳'){
    return var1 + string[1] + '好人'
  }else{
    return var1 + string[1] + '坏人'
  }
}
fn`${name} 是一个 ${person}`  //"月月 是一个 坏人"
var name = '芳芳'
var person = '人'
var fn = function(){
  let strings = arguments[0]
  let var1 = arguments[1]
  let var2 = arguments[2]
  if(var1 === '芳芳'){
    return var1 + string[1] + '好人'
  }else{
    return var1 + string[1] + '坏人'
  }
}
fn`${name} 是一个 ${person}`  //"芳芳 是一个 坏人"







阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭