Rails4新项目-使用ECMAScript6
15 Dec 2015在Rails项目中使用ES6是非常容易的事情。只需要以下两步步就可以完成:
- 在Gemfile中添加:
gem 'sprockets-es6'
- 然后就可以在javascript的目录中创建以
.es6
为扩展名的文件
你可以继续保留coffeescript,通过扩展名来区分就可以了。
经过一段时间使用,发现ES6的以下功能比较好用:
1.使用let来定义变量
如果是之后不会变化的常量,可以使用const
let和const都是有block scope的,减少了使用var易产生bug的问题。
2. => 箭头函数
使用箭头 => 数替换匿名函数,在箭头函数中this
就是定义该函数的对象
有一点需要注意:如果使用jQuery
,不可以使用$(this)
获取触发事件的对象,可以明确的使用$(event.currentTarget)
3. object literal:
在对象中可以用更加直观地方式定义function:
doSomething() {
this.doSomething2();
},
doSomething2() {
}
4. Default arguments 参数的默认值
var hello = function(name = "guest") {
alert(name);
}
此时,如果不传参数,name的默认值就是guest
5. Rest参数
var awards = function(first, second, ...others) {
var gold = first;
var silver = second;
var honorableMention = others;
}
6. Destructuring
var [first, , last] = [1, 2, 3]
set name(name) {
[this.firstName, this.lastName] = name.split(" ");
}
7. Interpolation 字符串的拼接
`Template strings allow strings to span
multiple lines and allow interpolation like 1 + 1 = ${1 + 1}
`
get name() {
return `${this.firstName} ${this.lastName}`;
}