JavaScript的一些思考,关于一道 in关键词的题

  先看题

https://segmentfault.com/a/1190000008823431

var scores = [10,11,12];
var total = 0;

for(var score in scores){
  total += score;
}

var mean = total/scores.length;
console.log(mean);

  你以为答案是11?错!是 4!
  引用的文章上面指出,这是因为 >for in 循环循环的值永远是key, key是一个字符串。所以total的值是:'0012'。它是一个字符串,字符串'0012'/3,0012会被转换成12,然后除以3,结果是4。


一些思考

  数组迭代,优先使用for循环,而不是 for in

  • for in 循环是循环对象的索引属性,key是一个字符串。
  • 数值类型和字符串相加,会自动转换为字符串
  • 字符串除以数值类型,会先把字符串转为数值,最终结果为数值
    如果要循环这个数组的话,(比如是arr[]),要这么使用: arr[key],或者说,老老实实用for循环。。。。代码结构清晰才是最好的。可读性至上。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,273评论 18 399
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,790评论 0 4
  • 从小到大,我一帆风顺地长大。只在电视电影里见识他人的生离死别悲欢离合,自己很少切身体验。随着年龄的增长,渐渐深...
    清灵灵子阅读 2,981评论 13 3
  • 喜欢狗狗的朋友们,一定也喜欢听关于狗狗的故事。更会在闲暇时,如数家珍一般地给三俩好友讲那些,使人潸然泪下的,无数曾...
    好睐鼠阅读 3,359评论 0 0
  • 我们一般认为多吃谷物对身体有好处,然而,这本书告诉我们,多吃面条容易得艾尔茨海默症! 减肥公司告诉我们,我们需...
    小白131阅读 3,114评论 0 0

友情链接更多精彩内容