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
领取专属 10元无门槛券
私享最新 技术干货