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中找到答案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript是一种脚本语言,用于在网页上实现交互和动态效果。它由Brendan Eich在网景公司创造出来,并在1995年发布。最初被称为LiveScript,后来为了借用Java的热度改名为JavaScript。\[1\]在HTML中,JavaScript代码必须位于<script>和</script>标签之间,以便在网页中执行。例如:<script> alert("hello js"); </script>。\[2\]由于JavaScript的普及,出现了不同版本的兼容性问题。为了解决这个问题,ECMA(欧洲计算机制造商协)在1997年制定了ECMAScript作为JavaScript的标准,使得不同浏览器都能支持相同的语法和功能。因此,ECMAScript和JavaScript可以看作是同一个东西。\[3\] JavaScript具有丰富的功能,包括操作网页元素、处理表单数据、实现动态效果、进行数据验证等。它是前端开发中不可或缺的一部分。 #### 引用[.reference_title] - *1* *3* [JavaScript基础(详细总结)](https://blog.csdn.net/select_myname/article/details/126404552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JavaScript详解](https://blog.csdn.net/weixin_48373085/article/details/128750402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值