知识大全 重思JavaScript的好与坏

Posted 语言

篇首语:人生不是一种享乐,而是一桩十分沉重的工作。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 重思JavaScript的好与坏相关的知识,希望对你有一定的参考价值。

重思JavaScript的好与坏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一个只花了 天就开发完成的脚本语言 自从诞生开始 就一直成为人们争论的焦点 尽管这样 它在编程语言中地位仍然无法动摇 全世界有几百万学习者和粉丝 而本文的作者认为JavaScript设计之匆忙 初衷仅仅实现简单的网页互动 JavaScript继承完全缺乏设计指导等 所以他认为JavaScript仍然较差

  最近 我和许多程序员一样 对JavaScript进行重新探讨 事实上 JavaScript是一个非常有能力的语言 但使用新JavaScript一年后 我得出的结论却是JavaScript仍然很烂 我并不是在讨论其古怪的比较运算 而是从更深的层次去思考 与此同时 还会提供一些解决方案供你选择

  直奔主题

   岁时 父亲送给我第一本编程书籍 JavaScript初学者编程 让我兴奋的是 我发现电脑并不单单是由电线和发条所组成 里面的代码清晰明了 我觉得我基本上理解它了 实际上也差不多 终究 代码除了人类理性思想的形式化还能是什么?

  说实话 我当时希望遇到的是Java 我甚至在谷歌上搜索 JavaScript和Java是同一种语言吗? 当然不是 所以Java成为了我学习的第二门语言 不过我母亲和继父不希望在家庭电脑里安装软件 所以我无法安装Java编译器 我清晰地记得 在把代码上传到一个在线编译器之前 得反复检查代码 然后等待 下载jar包……

  我当时认为 JavaScript是一个非常严肃的语言 在Notepad里新建一个HTML文件 然后在IE里打开 就这样开始了 没有类 没有私有和公有方法 没有final变量 当时 我甚至不知道什么叫 过度设计 但它准确地描述了我印象中的Java:

  ● 无需编译

  ● 无处不在的开发平台

  ● 没有高级语言特性

  ● 查看源文件

  为什么这么伟大的语言还会讨人厌?

  Ad hoc地狱

  下面是一些问题 设计之匆忙 初衷仅仅实现简单的网页互动 JavaScript继承完全缺乏设计指导 一切都是ad hoc:

   没有OOP:JavaScript确实存在基本的对象模型 但几乎无人知道它是如何工作的

   没有标准库 从论坛上复制粘贴代码不好玩

   没有模块系统 不断查找下载链接和很长的源文件

   缺乏语言资源 没有高品质的资源(几乎没有一本像样的书籍)意味着你只能从论坛或博客上获得一些非官方的参考

  既然JavaScript有这么多缺陷 到底是什么让它如此流行?

  复兴

  JavaScript崛起的背后可能与谷歌V 引擎息息相关 JavaScript突然变得很快 真正地快速 所以人们开始硬著头皮使用它来编写Web应用程序

  然而 Node js推出了一些更吸引人的基准 允许代码在客户端和服务器端重用 很像Meteor和Derby 因此 情况开始好转

   下载按钮变得更大

   Node js kind of sort of standardized an import system

   人们可以编写更好的库

   优秀的资源开始出现

  然而

   仍然没有采用OOP

   客户端和服务端的JavaScript仍然没有关联

   文档甚至是高知名度项目文档也很糟糕

  为什么?

  我认为现代JavaScript仍然较烂的根源是其处在一个特定的社区氛围中 该氛围一直强调 JavaScript是一门非常好的语言 但却一直被人误解 不 JavaScript只是一个提早诞生且没有先例可循的语言 停止包庇并且开始把JavaScript作为一个平台去拥抱 作为一个编译目标

  文档

  人们可以尽情嘲笑Java 但当我看Java文档时 我可以非常明确地知道哪个对象可以创建 每个方法里的参数 需要抛出的异常等 最好的事情莫过于使用JavaScript库作为精选示例代码 这几乎是不可能写出正确的软件 除非你阅读库源码 甚至连如此完整的JavaScript项目Express也存在令人生厌的API文档(Ember他们那些非常优秀的API文档可能是反例)

  语法糖

  JavaScript社区很快就抛弃了语法糖 语法糖是极富创造力的 将重复逻辑代码抽象出来 可以通用 帮助程序员以更好的方式编写代码

  ● 让代码更加简洁

  ● 有助于表达代码背后的意思 而不是算法 我已经知道了数组迭代算法 好吧 谢谢你 但是请你不要告诉我这些 我只想知道你要做的东西

  作为一名编码人员 你的主要观众不是电脑 而是其他程序员 也包括将来的自己 书写冗长的for循环很爽 但说实话 for (var i= ; i<arr length; i++)与for e in arr 比起来 人们更愿意读后者 顺便说一下 这里的JavaScript版的循环比CoffeeScript速率要慢 你知道为什么吗?

  JSLint

  如果程序员使用JavaScript尚未感到痛苦 那JSLint成功做到了这点 而且非常 成功 ! 想象一下 在某个编码的新兵训练营里 想要对JavaScript进行尴尬的惩罚 然后在其身上进行拔毛 这好比是拿着牙刷在刷厕所 事实上 我宁愿从牦牛身上拔毛 这是原文中的例子 小编的理解是JSLint的出现是给JavaScript挑刺的 而这样还不如直接在JavaScript身上拔毛

  更值得注意地是 作为程序员 我们应该寻找自动化 难道你不希望自己可以自动化JSLint吗?当然 你可以 CoffeeScript可以完美的生成linted代码 正如Jeremy

  OOP

  JavaScript对象模型还是不够成熟 原型(Prototype)继承是一个低级别的功能 可以创建一些非常有意义的对象模型 但却无法基于本身进行构建

  这也可能是JavaScript API为什么会那么糟糕的原因 当你所使用的语言甚至没有类时 该如何记录面向对象代码呢? 最重要的是 当我们甚至不知道实例化对象时 JavaScript开发人员该如何实行互操作?

  有什么可选项吗?

  年复一年 笔记本逐步成为主流 政坛也发生了不少的变化 而JavaScript仍然保持不变 你愿意等一些基本特性多少年?在这篇悲观论调的文章里 让我们先看看下面这个列表

   Mozilla发布了自己JavaScript 或 前者是在 年半之前发布的 且不向后兼容 但并无人使用且永远不会有 同样也适用于后者

   ECMAScript Harmony 最近 由于设计委员会的原因 发布新版ECMAScript将会有一个极其缓慢和痛苦的过渡过程 特别是它有一些特效是与JavaScript不兼容的 没有解决方案 除非你愿意再等数十年

  下面列出一些可选项

   CoffeeScript语法非常漂亮且支持类 我认为CoffeeScript并未结束 只不过是刚刚华丽地开启

   TypeScript一种编译到JavaScript的语言 可以在JavaScript中构建并且添加了静态类型 个人而言 我是它的大粉丝 正如Mohamed Mansour和Dave Hodder在评论中指出的那样 TypeScript正在进一步实施ECMAScript的一些建议 也许ECMAScript最终会从TypeScript中借鉴可选的静态类型

   Google Dart一个全新的语言 附带JavaScript编译器和一些JavaScript互操作 但整体上并未整合到JavaScript生态系统中

   HaXe这是一个高级语言 可以编译JavaScript Flash NekoVM PHP C++ C#和Java(不久后) 虽然我从未使用过 但它真的令人印象深刻

  总结

cha138/Article/program/Java/JSP/201311/19347

相关参考

浅谈鱼类越冬管理的重要性

渔业生产有句俗语:“增产措施千条线,通过管理一根针”。渔业增产如此,越冬管理亦如此。越冬管理的好与坏,直接关系到次年渔业生产及经济效益的好与坏,所以十分重要,应当引起广大养殖户的高度重视。一、鱼类越冬

浅谈鱼类越冬管理的重要性

渔业生产有句俗语:“增产措施千条线,通过管理一根针”。渔业增产如此,越冬管理亦如此。越冬管理的好与坏,直接关系到次年渔业生产及经济效益的好与坏,所以十分重要,应当引起广大养殖户的高度重视。一、鱼类越冬

知识大全 找人帮忙写一篇一千字左右的作文。

找人帮忙写一篇一千字左右的作文。时光如逝,岁月如流,一转眼的时光,1年的学习生活已经过去了.,在小五学年的学期末,特写此文以总结一学期的学习好与坏.期末考试的好与坏都看这一年的努力多少,我这一学期的表

知识大全 急

给父母的一段话,感恩!急是谁将我们带到这大千世界?是谁抚育我们长大成人?是谁最能包容我们所有的好与坏?那就是我们的父母亲。只有他们才能那么无私地为我们奉献一生的心血,养育、教育、关心、爱护我们,直到他

亲鱼的春季强化培育

春季是亲鱼性腺生长的关键时期,这个阶段亲鱼培育的好与坏,直接关系到家鱼人工繁殖的成败,因此在平常培育的基础上,要特别抓好春季培育。  1.调节亲鱼池水位,提高水温。晴天及时排水降低鱼池水位,加速提高鱼

冬春季节鱼塘管理技术要点

冬春时节鱼塘管理的好与坏,直接关系到全年养鱼产量和效益。因此,冬春两季鱼塘管理要点如下:一、池塘选择1、池塘选择越冬—鱼塘应选择东西向,避风向阳,鱼种池面积以3~5亩、成鱼池面积8—15亩为宜,池堤埂

亲鱼的春季强化培育

春季是亲鱼性腺生长的关键时期,这个阶段亲鱼培育的好与坏,直接关系到家鱼人工繁殖的成败,因此在平常培育的基础上,要特别抓好春季培育。  1.调节亲鱼池水位,提高水温。晴天及时排水降低鱼池水位,加速提高鱼

冬春季节鱼塘管理技术要点

冬春时节鱼塘管理的好与坏,直接关系到全年养鱼产量和效益。因此,冬春两季鱼塘管理要点如下:一、池塘选择1、池塘选择越冬—鱼塘应选择东西向,避风向阳,鱼种池面积以3~5亩、成鱼池面积8—15亩为宜,池堤埂

水质因素与罗汉鱼

水是鱼类赖于生存的最重要、最基本的条件,水质的好坏直接影响到鱼类的健康。而水体中的各因素又直接影响到水质的好坏。不同鱼种对水质的要求有所不同,因此水质的好与坏是相对而言的。  一,氯制剂自来水厂在供水

水质因素与罗汉鱼

水是鱼类赖于生存的最重要、最基本的条件,水质的好坏直接影响到鱼类的健康。而水体中的各因素又直接影响到水质的好坏。不同鱼种对水质的要求有所不同,因此水质的好与坏是相对而言的。  一,氯制剂自来水厂在供水