专栏名称: 程序员技术
最有影响力的程序员自媒体,关注程序员相关话题:程序人生、IT技术、IT职场、学习资源等。
目录
相关文章推荐
程序员技术  ·  某程序员:感觉身边35岁后月薪稳定在40k以 ... ·  6 小时前  
大淘宝技术  ·  大模型微调知识与实践分享 ·  8 小时前  
51CTO技术栈  ·  突发!刚被OpenAI收购就惨遭Claude ... ·  10 小时前  
程序员的那些事  ·  国民软件 QQ ... ·  2 天前  
51好读  ›  专栏  ›  程序员技术

浅谈JavaScript、ES5、ES6

程序员技术  · 公众号  · 程序员  · 2017-05-21 19:44

正文

请到「今天看啥」查看全文


+ super.toString();       }, // Computed (dynamic) property names [ 'prop_' + (() => 42 )() ]: 42 };

3、赋值解构

let singer = { first: "Bob", last: "Dylan" };   let { first: f, last: l } = singer; // 相当于 f = "Bob", l = "Dylan"   
let [all, year, month, day] =  /^(dddd)-(dd)-(dd)$/.exec("2015-10-25");   let [x, y] = [1, 2, 3]; // x = 1, y = 2

4、函数参数 - 默认值、参数打包、 数组展开(Default 、Rest 、Spread)

//Default   function findArtist(name='lu', age='26') {       ...   }   //Rest   function f(x, ...y) {     // y is an Array     return x * y.length;   }   f(3, "hello", true) == 6   //Spread   function f(x, y, z) {     return x + y + z;   }   // Pass each elem of array as argument   f(...[1,2,3]) == 6

5、箭头函数 Arrow functions


(1).简化了代码形式,默认return表达式结果。

(2).自动绑定语义this,即定义函数时的this。如上面例子中,forEach的匿名函数参数中用到的this。


6、字符串模板 Template strings

var name = "Bob", time = "today";   `Hello ${name}, how are you ${time}?`   // return "Hello Bob, how are you today?"

7、Iterators(迭代器)+ for..of


迭代器有个next方法,调用会返回:


(1).返回迭代对象的一个元素:{ done: false, value: elem }

(2).如果已到迭代对象的末端:{ done: true, value: retVal }

for (var n of ['a','b','c']) {     console.log(n);   }   // 打印a、b、c

8、生成器 (Generators)


9、Class


Class,有constructor、extends、super,但本质上是语法糖(对语言的功能并没有影响,但是更方便程序员使用)。

class Artist {       constructor(name) {           this.name = name;       }       perform() {           return this.name + " performs ";       }   }   class Singer extends Artist {       constructor(name, song) {           super.constructor(name);           this.song = song;       }       perform() {           return super.perform() + "[" + this.song + "]";       }   }   let






请到「今天看啥」查看全文