HTML5基础:JS有哪些变态语法(二)

173 阅读2分钟

JS这个语言好是好,但是很多时候写起来太丑了,每次看大牛的代码的时候,妈妈都问我为什么跪着读代码,随着

ES 2015
的普及我们可以写出很多可读性强且漂亮的代码,那么接下来就带着大家一块学习一下可以把
JS写漂亮的 “变态” 语法。

在组织面向对象代码的时候我们通常使用的语法是:

function Swiper(){

}

原型编程时我们往往会因为语言的无奈写成这样的:

Swiper.prototype.init = function (){}

Swiper.prototype.render = function(){}...

这样写丑陋且麻烦,那么如何让我们的代码变得更漂亮,更好用那?对于JS
有一定了解的童鞋可能会这么写,兼容性良好且可以节省大量的代码。

Swiper.prototype = {

constructor : Swiper,

init : function(){

},

render:function(){

}

....

}

这样组织看起来工整一点但是还会存在不少莫名其妙的属性constructor是个啥,好像没啥用啊,那么如果我们在项目中加入了类似jQuery这样的类库,我们的代码就可以变得更加简练,类似于这样

$.extend(Swiper.prototype,{

init : function(){

},

render:function(){

}

})

但是受限于语法,没法让方法看起来很很清爽,而且要引入一个庞大的类库,那么我们在项构建时使用babel
这样的编译工具,我们可以写成

Object.assign(Swiper.prototype,{

Init(){

},

render(){

}

})

现在你的代码可以无需任何类库,变得漂亮,优雅。甚至无需使用class关键字就可以让我们的代码变得清晰、耐看,有逼格。

说完了面向对象这个大事再跟大家普及两个极其方便的ES6
新特性。

一行式数组去重
:

var arr = [1,1,2,3,2,3,4,5,6,7]

arr = Array.from(new Set(arr));

ok

数组去重完毕,不再用一大堆逻辑代码处理数组中的重复,不可谓不”变态”让我们HTMLCollection可以使用
forEach
map
filer...
等遍历属性:

当我们选择一组元素想要遍历的时候我们在
es5
中往往需要非常恶心的
for
循环语法:

例如:

var domlist = document.querySelector(“.list”);

我们需要使用非常恶心的for循环

for( var i = 0 ; i < domlist.lenght ; i++){

domlist[i].....

}

恶心的让人欲仙欲死,那么如何让这段代码变得优雅那?

domlist = Array.from(domlist)

domlist.forEach( dom =>{

dom....

})

怎么样,是不是代码上了一个台阶的赶脚。

好了,今天的“变态”语法就暂时说到这里,各位小伙伴,我们下期见。