加载中

JS-ES6函数&迭代器

函数

默认值

// 允许默认值
function fun(a,b=5){
    console.log(a,b);
}

// 不传值用 undefined
fun(1,null);  // 1,null
fun(1,undefined);  // 1,5

// 特殊用法示例
function fun(x,y=x){
    console.log(x,y);
}
fun(1);  // 1,1

不定参数(…)

function fun(id,...nums){
   console.log(id,nums);
}
fun(0,1,2,3,4,5);  // 0,[1,2,3,4,5]

箭头函数

基础

// 两种方式等同
var fun1 = function(id){
  console.log(id);
}

var fun2 = id => {
    console.log(id);
}

参数

// 无参/多参 必须要加括号
var fun = () => {
    console.log("无参要加个括号");
}

var fun = (id,name) => {
    console.log(id,name);
}

代码

// 单条语句可不加 {},表示计算并返回它的值
var fun = (a,b) => a+b
console.log( fun(1,2) )  // 3

// 返回对象会造成语法错误,可以用()括起来
var fun = (a,b) => ({x:a,y:b})
console.log( fun(1,2) )

this指向

var age = 10;
var User = {
    age: 20,
    say1: function(){
        setTimeout(function(){
            console.log(this.age)
        })
    },
    say2: function(){
        setTimeout(() => {
            console.log(this.age)
        })
    }
}
User.say1();  // 10
User.say2();  // 20  免去了 self=this 这种写法

var age = 10;
var User = {
    age: 20,
    say1: function(){
        console.log(this.age)
    },
    say2: () => {
        console.log(this.age)
    }
}
User.say1();  // 20
User.say2();  // 10

posted @ 2020-02-02 15:28  jialeYang  阅读(80)  评论(0编辑  收藏  举报