浅析JavaScript 箭头函数 generator Date JSON

时间: 作者:验该

  

[JavaScript,generator,Date,JSON]浅析JavaScript 箭头函数 generator Date JSON

  

ES6 标准新增了一种新的函数: Arrow Function(箭头函数)。

  

  
  
  x => x *x  上面的箭头相当于:  function (x){  return x*x;  }  
  
  

箭头函数相当于匿名函数,并且简化了函数定义。一种像上面的,只包含一个表达式,  
  

  

连{ ... }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ ... }和return:  
  

  
  
  x =>{  if(x > 0){  return x * x;  }else{  return -x *x;  }  }  
  
  

如果参数不是一个,就需要用括号()括起来:  
  

  
  
  // 两个参数  (x,y) => x*x + y *y  // 无参数;  () =>3.14  // 可变参数  (x,y,...rest) =>{  var i, sum = x +y;  for(i=0;i  
  

this  

  

现在,箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj:  
  

  
  
  var obj = {  birth:1990,  getAge:function(){  var b = this.birth; // 1990  var fn = () => new Date().getFullYear() - this.birth; // this指向obj 对象。

  return fn();  }  }  obj.getAge(); // 25

  
  

如果使用了箭头函数,以前的那种hack 写法;  
  

  
  
  var that = this;  
  
  

就不再需要了。

  

  

由于this 在箭头函数中已经按照是否作用域绑定了,所以,用call() 或者apply() 调用箭头函数时,无法对this 进行  

  

绑定,即传入的第一个参数被忽略。

  
  

  
  
  var obj = {  birth:1990,  getAge:function(year){  var b = this.burth; // 1990  var fn = (y) =>y-this.birth; // this.birth 仍是1990  return fn.call({birth:2000},year);  }  };  obj.getAge(2015); // 25  
  
  

generator  

  

generator(生成器)是ES6标准引入的新型数据类型。一个generator看上去像一个函数,但可以返回多次。

  
  

  
  
  function* foo(x){  yield x +1;  yieldx + 2;  return x +3;  }  
  
  

generator 和函数不同的是,generator由function* 定义(注意多出的*号),并且,除了return 语句,还可以用yield 返回多次。

  

  

函数只能返回一次,所以碧玺返回一个Array. 但是,如果换成generator,就可以一次返回一个数,不断返回多次。

  
  

  
  
  function* fib(max){  var t,  a = 0,  b=1,  n=1;  while (n < max){  yield a;  t = a +b;  a = b;  b = t;  n++;  }  return a;  }  
  
  

直接调用试试:  
  

  
  
  fib(5); // fib {[[GeneratorStatus]]: "suspended", [[GeneratorReceiver]]: Window}  
  
  

直接调用一个generator和调用函数不一样,fib(5)仅仅是创建了一个generator对象,还没有去执行它。

  

  

调用generator对象有两个方法,一是不断地调用generator对象的next()方法:  
  

  
  
  var f = fib(5);  f.next(); // {value: 0, done: false}  f.next(); // {value: 1, done: false}  f.next(); // {value: 1, done: false}  f.next(); // {value: 2, done: false}  f.next(); // {value: 3, done: true}  
  
  

Date  

  

在JavaScript 中,Date 对象用来表示日期和时间的。

  

  

要获取系统当前时间,用:  

  
  
  var now = new Date();  now; //// Wed Jun 24 2015 19:49:22 GMT+0800 (CST)  now.getFullYear(); //2015,年份  now.getMonth(); // 5,月份,注意月份范围为0~11,5表示六月  now.getDate();// 24 ,表示24 号  now.getHours(); // 3,表示星期三  now.getMinutes(); // 19 ,24小时制  now.getSeconds(); // 22,秒  now.getMilliseconds(); //875 毫秒  now.getTime(); // 1435146562875, 以number形式表示的时间戳  如果要创建一个执行日期和时间的Date对象,可以用:  var d = new Date(2015,5,19,20,15,30,123);  d;// Fri Jun 19 2015 20:15:30 GMT+0800 (CST)  
  
  

JSON  

  

JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。 (责任编辑:admin)

推荐图片Related

相关文章Related

查看更多热门新闻


首页 | js代码 | jQuery特效 | 其他代码 | 关于我们

Copyright © 2010-2019 菲娱国际平台 版权所有

系统要求:本站自适应各终端浏览器分辨率

请使用Google、Firefox、IE9、百度浏览器登录网站

网站地图 | RSS订阅 | 菲娱国际平台