论坛首页 入门技术论坛

残废的javascript

浏览 11473 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-11-18   最后修改:2011-11-18
冒着被头新手帖风险发这个帖子,请大家高抬贵手。

我几年前写过JS,但很长时间没用了,最近因为一些事情又要写JS,长时间没写JS,发现还真不顺手,处处陷阱。所以我发这个帖子收集一下javascript的一些陷阱,这样可以帮助大家快速避免这些容易遇到的问题。列举了一些,大家可以后面跟帖,我最后会整理到博文里。

1. trim()
js是没有trim(),要实现,用正则吧。

2. array.remove(),js没有提供对数组的删除方法。我实现了一个:
  function arrayRemove(array,index){
	   if(index>=array.length){
	   	return;	
	   }
	   for(var i=index;i<array.length-1;++i){
	     array[i]=array[i+1];
	   }
	   array[array.length-1]=null;
	   --array.length;
	}


3. 获取HTML的自定义元素,firefox和IE不一样。
firefox不能直接: note.attribute.
firefox/IE兼容的代码: note.attributes['photoName'].nodeValue

4. js居然木有replaceALL()!!!!。擦,需要自己实现:
  replace(new RegExp("等","gm"),"想");


5. 又是一个IE陷阱:
这样写是无法提交表单的:
<a href="javascript:;" onclick="form.submit();">提交表单</a>

需要这样:
<a href="javascript:form.submit();">提交表单</a>
   发表时间:2011-11-19  
LZ写的代码,Js性能还需要加强。
0 请登录后投票
   发表时间:2011-11-19  
1. ie9与其它内核已自带
2. splice包罗万象
3. fx下用getAttribute
4. g标识符
5. 请模拟点击submit按钮
0 请登录后投票
   发表时间:2011-11-19  
1. prototype是干啥的
2. 请查看Array的API
3. 通用 getAttribute
4. 回去查查正则的 igm
5. 无话可说
0 请登录后投票
   发表时间:2011-11-19  
soni 写道
1. prototype是干啥的
2. 请查看Array的API
3. 通用 getAttribute
4. 回去查查正则的 igm
5. 无话可说


好吧,你写个简单的javascript就要先干这么多事情,那还是别写了,简单好点。
0 请登录后投票
   发表时间:2011-11-19  
san_yun 写道

好吧,你写个简单的javascript就要先干这么多事情,那还是别写了,简单好点。


js简单?那是你以为的,我理解,楼主其实打心底里就没有那正眼看js
0 请登录后投票
   发表时间:2011-11-20  
果断投新手 
0 请登录后投票
   发表时间:2011-11-20  
虽说LZ的js比较业余,不过js难用也是事实。
0 请登录后投票
   发表时间:2011-11-20  
slaser 写道
虽说LZ的js比较业余,不过js难用也是事实。



js支持原生正则。。。。replaceAll根本没什么问题,replace,第二个参数还可以回调方法——java里面不知道你要写多少行代码。。。

js的splice还不好用??php也没remove,这些语言只知道slice/splice,不知道你说的remove/putAll,不好用是因为你用不习惯而已

js的基础语法太灵活,不像java一样都考虑的方方面面(也有人因为java String没有capitalize方法而郁闷呢,需要commons-lang...),oo用好了也很强大,总之楼主若深入学习下js然后再回头看此贴更好
0 请登录后投票
   发表时间:2011-11-20  
JS不是Java,为什么要提供Java的方法?如果拿JS中的一些长处和Java比,Java一样也是残废的。最起码java中的switch就不支持字符串(JDK1.7才开始支持)
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics