有的时候真的不知道 js 这些东西是怎么被设计成这样的....

2015-07-26 00:11:36 +08:00
 kamushin

比如obj的key只能是str....我想做个以对象为key的map还要自己调用hash
比如for(i in array)返回的是key的列表,喂,你是把自己当map了吗....for(i of array)才等同于Python里的for i in array...说实话以我的弱渣英语真不懂这里in和of都有啥能让人记住的区别
比如split()居然返回的是自己...靠..你默认\n或者空格都行啊..返回自己是个什么设计...

4355 次点击
所在节点    JavaScript
39 条回复
riaqn
2015-07-26 00:15:05 +08:00
如果js/perl/bash的设计者在同一架飞机上,那我一定会不惜一切代价把他炸了.
bramblex
2015-07-26 00:16:15 +08:00
这……貌似喷都没喷到点上唉……
bramblex
2015-07-26 00:19:05 +08:00
@riaqn

然而prel风格的正则大法好,正则是处理字符串的利器。
然而bash光一个pipe+重定向就秒天秒地了。
然而js……嗯,js大法好! /w\
NemoAlex
2015-07-26 00:23:47 +08:00
前端的东西比这乱的多了去了,说明还是见得少。
这都受不了的话,去试试世界上最好的语言,提升一下免疫力。
sox
2015-07-26 00:26:25 +08:00
我就静静地看着你装逼。
kamushin
2015-07-26 00:28:12 +08:00
@NemoAlex 最近在看看为什么node这么火爆。所以也不算在接触前端吧。前段时间工作需要看别人写的Perl代码,除了觉得奇怪的字符比较多以及奇怪的scalar以外,感觉也还好。。。
@bramblex 没有啦。我并没有在喷。只是学习中吐槽一下。而且我也是新手,肯定喷不到点上。
edsgerlin
2015-07-26 00:30:07 +08:00
@riaqn Perl 其实很有 consistency,只要你学会用 Larry Wall 的脑回路思考,设计风格是很一致的。相比之下 PHP 就是设计者拍拍屁股就加个特性的表率。
YuJianrong
2015-07-26 00:32:07 +08:00
吐槽的点都好怪,而且你都用es6的for of 了为何不用es6的map?有in了还来个of很自然就能知道是不能破坏以前in的语意呗……

学语言都要了解一下特定语言的一些怪癖,Js有这些其他语言何尝没有……
YuJianrong
2015-07-26 00:34:39 +08:00
顺便es从5开始设计就很不错了,大多数坑都是在最初版埋下的为了兼容没办法改(比如 typeof null是object),不过由于第一版js很简单其实这些坑也不多的。
kamushin
2015-07-26 00:41:39 +08:00
@YuJianrong 恩,其实我就是在学这些怪癖,但是这些怪癖我真是怪的想吼出来了....
yakczh
2015-07-26 00:45:28 +08:00
console.log(Function instanceof Object); // true
console.log(Object instanceof Function); //true
console.log(Object instanceof Object); //true
console.log(Function instanceof Function); //true
lwbjing
2015-07-26 00:47:51 +08:00
太年轻。。我们切图仔写两行JS容易么。。。
yakczh
2015-07-26 00:48:53 +08:00
console.log(Function === Function.constructor ); //true
console.log(Object === Object.constructor ); //false
终于出现了一个false
yakczh
2015-07-26 00:52:08 +08:00
console.log(Object.constructor); // [Function: Function]
console.log(Object.constructor.__proto__); //[Function: Empty]
yakczh
2015-07-26 00:57:12 +08:00
console.log({} === {}); //false
kamushin
2015-07-26 01:04:48 +08:00
@lwbjing 我真的觉得你们挺不容易的....在es6前,你们是怎么忍受少了这么多功能的...上面那个哥们说的各种true false也懒的去说了...
kamushin
2015-07-26 01:07:31 +08:00
@YuJianrong 我比较能接受保留in原来的for(key in array),加入for(key,value in array)...
tushiner
2015-07-26 01:26:12 +08:00
用到了就习惯了,想当初第一节编程课上老师都说过,语言都是相通的,只是语法不一样,一种语言能实现的东西,其他语言肯定能实现。还有,我刚刚在segmentfault回答你的问题了。。。换了个地方又见到了你。
Wangxf
2015-07-26 01:29:53 +08:00
一直不明白别人喷js的原因是什么,你们觉得和你们之前学的不一样的地方正是js的特点,我喜欢
monnand
2015-07-26 01:39:59 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/208367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX