为什么我喜欢JavaScript

21CTO社区导读:每个开发者都有自己喜欢的语言。读完本文,你会知道作者为什么喜欢JavaScript,尽管有一些人不太喜欢JavaScript。

每个编程语言都有自己的怪异特性和挑战。谈到JavaScript,有着更多的古怪玩意。这不是编程语言本身的问题,而是由于浏览器的支持不同导致的结果 。不同的浏览器厂商实现了有少许不同的JavaScript引擎,这也给Web开发者带来了不少挑战。前端开发者需要感谢JQuery,我们像呼吸着清新的空气一般,不需要做太多浏览器的适配和调整。但是,这并不是故事的结局。

这么多年来,JavaScript的性能和语法真的提升了很多。在本篇文章里,我将首先介绍JavaScript的怪异特性,然后向大家解释我为啥喜欢JavaScript。

JavaScript的怪异部分

开发者就要举栗说明。我们直接进入代码,因为它比说话更直接。

//比较

x == x // returns true

x !== x // returns false

//类型

typeof NaN // returns "number"

"string" instanceof String // returns false

//数据

0.1+0.2==0.3 // returns false

//Parentheses matter

function f1() {

return

{

name: 'my function'

}

}

function f2() {

return {

name: 'my function'

}

}

typeof f1() === typeof f2(); //false

我们可能会发现更多的语法特点,但我们也保持简洁,下面来关注一下新语法。

好的部分

ES6是JavaScript语言的重要更新。它引入一个强大的语法。我自己已经用了很长时间的JavaScript,但每次使用我都会更喜欢它,我说一下比较喜欢的功能。

默认参数

我在Python中使用了默认参数,它很有趣。然后,在JavaScript中,它通过删除额外的逻辑来覆盖空情问来简化代码。

function increment(i, inc = 1) { return i + inc; }

箭头功能

我想这不只是我喜欢箭头,它简化了过滤和映射的逻辑。请注意,我们有一些全新的功能,如some 和 every,它们非常好用的,可以少写很多代码。

[1, 2, 3].map(i => i + 1).reduce((s, i) => s + i)

[1, 2, 3].filter(i => i % 2 == 0).sort()

[1, 2, 3].some(i => i % 2 == 0)

[1, 2, 3].every(i => i % 2 == 0)

模板字符串

模板字符串只是构建字符串的一种更好的方式。它消除了格式化字符串固有挑战。它也可以计算内部逻辑。但这并不是一个好主意。

let name='Gulnihal', postId=3, commentId=5

console.log(`Hello $`)

let url = `http://www.yusufaytas.com/posts/$/comments/$`

console.log(url)

解构作业

这真的很神奇。你可以解构对象和数组,可以轻松查看和取得属性。

const [a, ...b] = [1, 2, 3]; // a becomes 1 and b becomes [2, 3]

const = { id: 3, person: } // id becomes 3 and person becomes

const newArray = [1, ...[2, 3]]; //newArray becomes [1,2,3]

//You can also destruct in a for loop

const people = [{ id: 3, person: }]

for (var } of people) {

console.log(`The person with id=$ is $.`);

}

我已经完整通过我喜欢的新JavaScript的特性。另外,它还有Promises,Classes和其他对象方法等其它很棒的功能。

上面这些新功能很明显的改变了我的日常开发,让我编写更少的代码且更富有表现力。

一段时间以为,JavaScript的气味似乎不那么好闻,近几年它有明显的改善。我们可以简单的接受其怪异的部分,避免使用它那古怪的语法。

作者:Yusuf Aytaş

译者:21CTO社区

来源:https://dzone.com/articles/why-i-like-javascript

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180117B0MQD300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券