发布于 1970-01-01 08:00
  • 2 个回答
    • 虽然我也不知道原因,但是我简单的测试了一下,发现其实是否在循环内多次定义所花的时间多少并没有规律,楼主可以通过通过修改times更改执行次数来查看执行的时间测试

      2022-11-20 21:52 回答
    • 2种定义都是相当于只定义了一次,因为JS会对变量的定义进行提升。楼主可以去搜索一下变量提升hoist

      但是,虽然原则上两种都是只定义了一次,但效率却是不同的。因为JS是解释型的语言,一段被重复执行的代码(例如循环),在算法相同的情况下,代码越短,其运行效率越高。这也是为什么很多时候要把写好的JS代码用工具进行压缩的原因。这些压缩工具在压缩代码时,一个重要的手段就是缩短变量名(例如把局部变量全部替换为单字符的名称)


      补充回答:
      比如有以下代码:

      var arr = [1,2,3];
      // 这样的话a和b改变任何一个都会影响另一个
      var a = arr;
      var b = arr;
      
      // 如果非要让a和b的内容相同,又互不影响,可以这样
      var a = arr;
      var b = [];
      for (var i = 0; i < a.length; i++) {
          b[i] = a[i];
      }

      上面的代码可以处理数组,其他对象需要用不同的方法。楼主可以搜索以下对象拷贝深拷贝相关的文章

      2022-11-20 21:52 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有