为什么我喜欢JavaScript

原文来自DZone:Why I Like JavaScript

以下是中文翻译版本。

每种编程语言都有其独特性和挑战性。当涉及到JavaScript时,它可能有更多的古怪之处。它本身不仅是语言,而且还支持浏览器。多年来,不同的供应商实现了略有不同的JavaScript引擎。这带来了很多挑战。我自己应对这些挑战。多亏了jQuery,我们才有了新鲜空气。无论如何,这还不是故事的结局。多年来,JavaScript确实有了很大的进步。在本文中,我将首先介绍JavaScript的怪异之处,然后尝试解释为什么我喜欢JavaScript。

怪异之处

我将直接展示代码,因为这比演示更好。

//Comparison
x == x // returns true
x !== x // returns false

//Types
typeof NaN // returns "number"
"string" instanceof String // returns false

//Numbers
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有一段时间了,但是每次使用它时,我都会更喜欢它。因此,我将介绍我最喜欢的功能。

默认参数

我首先在Python中使用默认参数,这很吸引人。但是,在JavaScript中,它通过删除多余的逻辑来覆盖空值情况来简化了代码。

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

箭头函数

我想不仅仅是我,所有人都喜欢箭头函数,它大大简化了过滤和映射的逻辑。请注意,我们有一些全新的功能,例如 someevery。他们很棒,您只需写更少的代码。

[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)

销毁属性

这真是神奇。您可以销毁对象和数组。您可以轻松获得想要的属性。

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,Classs和其他对象方法。但是,上述功能极大地改变了我的日常编码,因为我以一种更具表现力的方式编写了更少的代码。

JavaScript一直是为人诟病,但它的性能得到了显着改善。可以简单地接受这些奇怪的部分并避免它们。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,835评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,900评论 2 383
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,481评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,303评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,375评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,729评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,877评论 3 404
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,633评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,088评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,443评论 2 326
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,563评论 1 339
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,251评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,827评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,712评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,943评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,240评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,435评论 2 348

推荐阅读更多精彩内容