新足迹

 找回密码
 注册

精华好帖回顾

· 征文活动: 留学生的滞留地: 克雷顿(MEL CLAYTON) (2010-9-13) 太有才了 · 把酸豆角扔了,川菜来了,口水多的准备好纸巾。 (2009-9-16) wideye
· 我的“职业特工”生涯 (2005-8-9) crystal · 2010年的春节,我们在路上 (2010-3-2) 林草123
Advertisement
Advertisement
查看: 3826|回复: 85

javsacript: bad codes vs good codes [复制链接]

发表于 2011-2-8 11:20 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Just some examples, for fun
Green color means good, red color means not so good.
How about your coding?

if(a==b)     
if(a===b)

for(i=0;i<n;i++)
for(i=0;i<n;i+=1)

parseInt(n)
parseInt(n,10)

for(i=0;i<objs.length;i++)
leng=objs.length
for(i=0;i<leng;i++)

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 感谢分享

查看全部评分

Advertisement
Advertisement

发表于 2011-2-8 11:23 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
红的看起来好多了,为啥呢

特殊贡献奖章

发表于 2011-2-8 11:23 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有多bad?

第一个例子我之前用js validator 工具测试的时候被挑出来不好,现在都用===

后几个不知道有神马问题

发表于 2011-2-8 11:25 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nice one!!!

最后一个,如果次序不是很重要的话,

for(i=objs.length-1;i>=0;i-=1)

性能稍微再好点,0 vs local variable,还是常量0好点。

发表于 2011-2-8 11:27 |显示全部楼层
此文章由 rogerk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rogerk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2011-2-8 12:23 发表
有多bad?

第一个例子我之前用js validator 工具测试的时候被挑出来不好,现在都用===

后几个不知道有神马问题

javascript 为什么要用 === 呢?怕少写了等号吗?

2010年度奖章获得者

发表于 2011-2-8 11:28 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
js 真tmd 是bitch.

明显engine没有做好, 这种常用的pattern都要优化好才对。
大家不要改, 用的人多了, 逼着他们优化engine。

鉴定完毕。

评分

参与人数 2积分 +5 收起 理由
+ 3 我很赞同 engine没有做好
澳贼 + 2 我很赞同

查看全部评分

Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2011-2-8 11:32 |显示全部楼层

这个有点咬文嚼字了吧?

此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2011-2-8 11:32 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 rogerk 于 2011-2-8 12:27 发表

javascript 为什么要用 === 呢?怕少写了等号吗?


=== 连type都比了,performance也稍微好点

发表于 2011-2-8 11:52 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
if(0==false)  //return true
if(0===false)  //return false

发表于 2011-2-8 12:31 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
第一条 == === 各有各的用途, 不敢苟同

第三条可以直接这样写 for(i=0, leng=objs.length; i<leng; i++) 会比for(i=0;i<objs.length;i++)快一点点

评分

参与人数 1积分 +3 收起 理由
+ 3 谢谢奉献

查看全部评分

发表于 2011-2-8 12:33 |显示全部楼层
此文章由 dadumile 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dadumile 所有!转贴必须注明作者、出处和本声明,并保持内容完整
i++有什么错?
Advertisement
Advertisement

发表于 2011-2-8 12:40 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
the result of if(a==b)  is not always same  as if(a===b),
the result of  parseInt(n)  is not always same  as  parseInt(n,10),

That's the problem

发表于 2011-2-8 12:43 |显示全部楼层
此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
js 真tmd nb,爱用不用,无可替代

比起有些语言的文法,js还算过得去

比如:(a ||= {})["foo"] = 1

2010年度奖章获得者

发表于 2011-2-8 12:50 |显示全部楼层

比这个好多了

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
知道这是那个流派吗?

MyViewController *aViewController = [[MyViewController alloc]

initWithNibName"MyViewController" bundle:[NSBundle mainBundle]];

[self setMyViewController:aViewController];

[aViewController release];
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2011-2-8 12:52 |显示全部楼层

回复 14# 的帖子

此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
C和Lisp的混血?

2010年度奖章获得者

发表于 2011-2-8 12:54 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这是果粉的最爱

Objective-C
Advertisement
Advertisement

发表于 2011-2-8 12:58 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
红的我全用上了。啥事都没有。

发表于 2011-2-8 13:01 |显示全部楼层

回复 16# 的帖子

此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
果粉们才不在乎呢,又不写果程

写果程的也不在乎,只要能卖钱

语言就是工具,谁给的嫖资不是钱啊

发表于 2011-2-8 13:09 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
什么时候才能让javascript彻底消失啊。

发表于 2011-2-8 13:12 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2011-2-8 14:09 发表
什么时候才能让javascript彻底消失啊。


人工智能兴起的时候, 这些都机器去做了, 面向商业应用的程序员神马都是浮云了.

发表于 2011-2-8 13:13 |显示全部楼层

回复 20# 的帖子

此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
那也无所谓,我转行搞艺术。
Advertisement
Advertisement

2010年度奖章获得者

发表于 2011-2-8 13:18 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得JS完全是那个年代遗留下来的不幸的怪胎

发表于 2011-2-8 13:21 |显示全部楼层
此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2011-2-8 14:09 发表
什么时候才能让javascript彻底消失啊。




objective-c都能上了不少程序员,长的还不算太糟的js凭什么就只能当和尚

发表于 2011-2-8 13:28 |显示全部楼层
此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-8 14:18 发表
我觉得JS完全是那个年代遗留下来的不幸的怪胎

原帖由 bulaohu 于 2010-12-14 10:38 发表
唉,多不容易啊,编程语言也是一个江湖,有派系,有势力,有规矩,有腥风血雨...最近有个叫Javascript的私生子奋斗了十几年,总算熬出头了

发表于 2011-2-8 13:30 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本来已经奄奄一息了,结果突然大兴ajax,这下给JS打了兴奋剂了,人人都得去上一下。
后来说RIAs要消灭他,结果又说HTML5马上要出来,JS还是很重要的。。。。

2010年度奖章获得者

发表于 2011-2-8 13:37 |显示全部楼层

回复 24# 的帖子

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Yuba 我觉得你的快速搜索能力,绝对问鼎足迹。

你是不是有local db, 定期archive 足迹内容, 然后一个query 就出来了啊?
Advertisement
Advertisement

特殊贡献奖章

发表于 2011-2-8 13:41 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
能杀死js的只有一个,就是html或html进化的产品
哪天html也能写逻辑了,js就可以拜拜了

发表于 2011-2-8 13:41 |显示全部楼层

回复 26# 的帖子

此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
两只老虎在怀胎生子方面的体会给我留下了深刻的印象

发表于 2011-2-8 13:44 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
javascript 从design到implement一共用了两个星期,c#/java/c++用了多久? 这些都是幸存下来的语言,更不用说其他些我们从不知名的小语言,还没出实验室就陨灭了。不要看不起它。

javascript从语法上符合ECMAScript的标准,具体实现是各个browser自己的问题,跟js根本无关,很多trick/tips都是js engine fault的work around, 根javascript没什么关系。

不happy with js没问题,自己写一个东西来替它,这坛子其他人我不敢保证,我第一个支持.

Just be fair

2010年度奖章获得者

发表于 2011-2-8 13:50 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我的意思是说, js很好,但为什么不上个台阶呢?

用managed code 来写 “JS”, 让compiler 来输出 cross-browser的js 或 dll。

道理跟 C#/Java => 2进制一样。

你同意吗?
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部