为什么我喜欢JavaScript_java

每个编程语言都有自己的怪异特性和挑战。谈到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 ${name}`)

let url = `http://www.yusufaytas.com/posts/${postId}/comments/${commentId}`

console.log(url)


为什么我喜欢JavaScript_java_02


解构作业


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


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的气味似乎不那么好闻,近几年它有明显的改善。我们可以简单的接受其怪异的部分,避免使用它那古怪的语法。