怎样评价JavaScript这门语言
很多语言的槽点其实并非标准之争,比如Python的“空格缩进”,就看个人喜不喜欢。而JS有所不同,它的不少槽点是硬伤,比如“==”。
【怎样评价JavaScript这门语言】 但这些槽点只能说是瑕疵纰漏,么有大碍。实际上,JS具备了另辟蹊径的对象方式,以及必要的FP特征(主要还是得益于函数是一等公民,以及callback、闭包的盛行)。这些都使得JS写起来很方便,很简洁。
说this会变来变去,这其实很正常,Ruby中的“self”也是要看context上下文,见得多了就没什么大惊小怪的,这属于“存在即合理”的范畴。
总之,在目前盛行一股“Java优先”的风尚的情况下,连Python都被批得“七零八落”,那么同为动态语言的JS估计也有不少人要鄙视的,可能搬出TypeScript来也不济。
■网友
刚用的时候觉得很垃圾,除了 php 以外,世界上最垃圾的语言也莫过于它,最近这两年感觉倒还行,es6 打上了不少补丁,eslint 做了限制之后倒也还好,特别是已经习惯了这种语法的情况下,再写 go 反倒会有些不习惯,lua 就会习惯的多,但是写着写着还是觉得 js 舒服,最起码 api 提供的比 lua 全,lua 实在太简洁了,但是这种不管好坏,什么 api 都给你准备好的设计也带来了很大的缺点,js 坑也坑在这里,对用得好的人来说它并不比其它语言差多少,但是对很多新手而言,js 就变成了一门掺杂着各种难以理解的设计的坑爹语言。
比如说现在最不满意的点就是 js 提供了太多带坑的语法(换句话说就没几个语法不坑),例如几个大坑 『var』、『!= \u0026amp; == 』、『函数提升』、『this』,这些对新手是极其不友好的,特别是在没什么计算机基础又没有接触过其它语言的情况下,往往一个坑还没爬出来就跳进了另一个坑(这也是很多前端项目代码质量低下的一个原因,语言过于灵活)。
但是对于老手更坑的地方在于,就算你工作中已经小心翼翼的避免了这些坑,依旧避免不了在找工作的时候总会碰到关于这几个坑的题目,这个时候你就面临着明明知道它是坨翔,但是又不得不吃下去的这种恶心感。
■网友
谢邀
就语言本身来说,是一个令人恶心的存在
谁让它和html绑定到一起了呢
■网友
一、语法
js的语法不是最开发友好的,但是一直朝着这个目标前进。
相比c like语言,作为脚本语言的js语法一定是十分灵活的。面向开发友好,其实就是语法糖多,合不同人口味,可以有各种编程风格。
要是说一流的语法,那我首推ruby。js一直在向ruby努力。
二、编程范式
js的oo设计是非常易于理解的。万物皆object与原型链可以说很好的模拟了oo范式。es6之后,通过语法糖看起来真正实现了部分oo特性。箭头函数也解决了大部分this需要调用bind/apply/call的乱象。其他的特性大多也在提案里,不过终归是语法糖。
fp其实js也在语法层面支持的相当好,甚至优于oo。毕竟函数是一等公民的语言,“纯”函数、curry、compose非常容易编写,相应的语法也相当完善。一些方法比如map也体现了声明式的思想。
js可能真的更偏向fp吧,尤其是在es6之前。
三、使用场景
这个勿需多言……
四、其他
feature很多,一部分是因为语法糖,一部分是因为语言设计。
所以差劲的地方确实有,以类型转换为甚,类型转换以==判断相等为甚。十二条法则滚瓜烂熟烂熟还是要试一下才动手,更不要说别人怎么看了。
喷js的后端同学真的很讨厌,口口声声说着玩具语言,就算你从Java转,看了文档之后还是写不出能跑的代码,更不要说优雅了。但是我从js去学ruby只看了半天书。
全栈与大前端的概念确实挺招人烦的。全栈这个概念我觉得不应该从语言上表示,而是应该通过解决问题的能力表现。不是说我写个表单能提交就是会写前端了,也不是说我写个静态文件服务器就是会写后端了。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
