JavaScript经常遇到的错误,晕~~

    学了一段时间的JS,唉,有的地方很注意细节,稍不留神IE就给你个“对象未定义的错误”,郁闷的是调试不到问题的出处。在几十行代码中尚有耐心去检查,但上了百行甚至几百行的就要发飙了。总结了一些JS常有的小错误:

     1、小心最后一个逗号

  如这段代码,注意最后一个逗号,IE会报语法错误,但语焉不详,你只能用人眼从so many行代码中扫描。其实错误却简单得要死~~我已经中了很多招这个错了,呜呜~~

  <script>

  var theObj = {

  city : "ZhuHai",

  state : "Single",

  }

     2、注意变量名不要和html的id重复 

  在JavaScript中不要使用跟HTML的id一样的变量名。如下代码:

  <input type="button" id="TheButton">

  <script>

   var TheButton =document.getElementById('TheButton');

  </script>

      IE会报对象未定义的错误。我只能说:IE sucks.

     3、字符串只替换第一个匹配

  如下代码:

  <script>

  var fileName = "I am a girl".replace(" ","_");

  </script>而实际上,结果是”I_am a girl“. 在JavaScript中,String.replace的第一个参数应该是正则表达式。所以,正确的做法是这样:

  var fileName = "I am a girl".replace(/ /g,"_");
     4.新建的元素不能正常使用
      这个网上找到的一个问题,但也遇到过:
     <script>

   var newInput = document.createElement("input");

   document.body.appendChild(newInput);

   newInput.focus();

  </script>

     newInput.select();但是IE会报错(sucks again and again)。理由可能是当你执行fouce()的时候,元素尚未可用。因此,我们可以延迟执行:

  var newInput = document.createElement("input");

  newInput.id = "TheNewInput";

  document.body.appendChild(newInput);

  setTimeout(function(){

  document.getElementById('TheNewInput').focus();

  document.getElementById('TheNewInput').select();}, 10);

      在实践中,JavaScript的陷阱还有很多很多,大多是由于解析器的实现不到位而引起。这些东西一般都不会在教科书中出现,只能靠开发者之间的经验分享。谢天谢地,我们生活在网络时代,很多碰到的问题,一般都可以在Google中找到答案。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值