javascript-为什么CoffeScript不“重用”循环变量?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-为什么CoffeScript不“重用”循环变量?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1308字,纯文字阅读大概需要2分钟。
内容图文
我是CoffeeScript的新手,对此感到非常兴奋.我做了一些基本的循环here.现在,CoffeeScript正在为每个循环定义一个循环变量,如下所示:
var food, _i, _j, _len, _len1;
for (_i = 0, _len = fruits.length; _i < _len; _i++) {
food = fruits[_i];
console.log(food);
}
for (_j = 0, _len1 = vegetables.length; _j < _len1; _j++) {
food = vegetables[_j];
console.log(food);
}
我曾经这样编码我的循环:
for(var i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for(var i = 0; i < vegetables.length; i++) {
console.log(vegetables[i]);
}
我是每个循环的我的循环变量(嵌套循环除外).现在我了解到,在定义变量之前,应始终声明变量.因此,我将编码习惯更改为:
var i;
for(i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for(i = 0; i < vegetables.length; i++) {
console.log(vegetables[i]);
}
只要我处于同一范围内,我就不会发现任何问题,但是编译后的CoffeeScript代码让我感到纳闷.
为什么CoffeeScript在每个循环中都使用不同的变量?
解决方法:
在没有看过CoffeeScript源代码的情况下,这是我(受过教育的)猜测:
CoffeeScript解释器只需为您编写的每个for ..创建一个新的for循环结构.在构造输出JS时,它会维护一个局部变量名称表,并在必要时附加到该表.
毕竟,您可以在循环中将它们嵌套在..中,在这种情况下,无论如何您将开始需要在JS中使用单独的循环变量.
有必要跟踪局部函数范围中的哪些变量可能被重用.这是可能的,但比其价值更复杂-它根本无法提供任何好处,因此CoffeeScript不会做到这一点.
内容总结
以上是互联网集市为您收集整理的javascript-为什么CoffeScript不“重用”循环变量?全部内容,希望文章能够帮你解决javascript-为什么CoffeScript不“重用”循环变量?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。