17611538698
webmaster@21cto.com

为什么我喜欢JavaScript

资讯 0 2008 2018-03-08 12:02:33


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


 

1.jpg

 
每个编程语言都有自己的怪异特性和挑战。谈到JavaScript,有着更多的古怪玩意。这不是编程语言本身的问题,而是由于浏览器的支持不同导致的结果 。不同的浏览器厂商实现了有少许不同的JavaScript引擎,这也给Web开发者带来了不少挑战。前端开发者需要感谢JQuery,我们像呼吸着清新的空气一般,不需要做太多浏览器的适配和调整。但是,这并不是故事的结局。
 
这么多年来,JavaScript的性能和语法真的提升了很多。在本篇文章里,我将首先介绍JavaScript的怪异特性,然后向大家解释我为啥喜欢JavaScript。
 
[size=14]JavaScript的怪异部分[/size]
 
开发者就要举栗说明。我们直接进入代码,因为它比说话更直接。
 
//比较
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
 
我们可能会发现更多的语法特点,但我们也保持简洁,下面来关注一下新语法。
 
[size=14]好的部分[/size]
 
ES6是JavaScript语言的重要更新。它引入一个强大的语法。我自己已经用了很长时间的JavaScript,但每次使用我都会更喜欢它,我说一下比较喜欢的功能。
 
[size=14]默认参数[/size]
 
我在Python中使用了默认参数,它很有趣。然后,在JavaScript中,它通过删除额外的逻辑来覆盖空情问来简化代码。
 
function increment(i, inc = 1) { return i + inc; } 
 
[size=14]箭头功能[/size]
 
我想这不只是我喜欢箭头,它简化了过滤和映射的逻辑。请注意,我们有一些全新的功能,如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)
 
[size=14]模板字符串[/size]
 
模板字符串只是构建字符串的一种更好的方式。它消除了格式化字符串固有挑战。它也可以计算内部逻辑。但这并不是一个好主意。
 
let name='Gulnihal', postId=3, commentId=5
console.log(`Hello ${name}`)
let url = `http://www.yusufaytas.com/posts/${postId}/comments/${commentId}`
console.log(url)
 

2.jpg

 
 
[size=14]解构作业[/size]
 
这真的很神奇。你可以解构对象和数组,可以轻松查看和取得属性。
 
const [a, ...b] = [1, 2, 3]; // a becomes 1 and b becomes [2, 3]
const {id, person} = { id: 3, person: {name: 'Gulnihal'}} // id becomes 3 and person becomes {name: 'Gulnihal'}
const newArray = [1, ...[2, 3]]; //newArray becomes [1,2,3]
//You can also destruct in a for loop
const people = [{ id: 3, person: {name: 'Gulnihal'}}]
for (var {id: id, person: {name: name}} of people) {
  console.log(`The person with id=${id} is ${name}.`);
}
 
我已经完整通过我喜欢的新JavaScript的特性。另外,它还有Promises,Classes和其他对象方法等其它很棒的功能。
 
上面这些新功能很明显的改变了我的日常开发,让我编写更少的代码且更富有表现力。
 
一段时间以为,JavaScript的气味似乎不那么好闻,近几年它有明显的改善。我们可以简单的接受其怪异的部分,避免使用它那古怪的语法。
 
 


作者:Yusuf Aytaş
译者:21CTO社区
来源:https://dzone.com/articles/why-i-like-javascript


评论