为了账号安全,请及时绑定邮箱和手机立即绑定

第一次提问,老师图片答案那里 countMap1 = {} 是定义对象吧?然后我问题就来了。。

  假设 arr1[0] = 1,那经过调用下面的 typeOf函数,typeOf(arr1[0]) 就返回 'number',所以 t1 = 'number' 吧。

   if (countMap1[t1]) 即是 if (countMap1['number']) , countMap1['number'] 没赋值,我测试了一下,返回的是 undefined ,那if语句里,undefined不就肯定走向 else了吗? 这部分完全没看懂。。。我基础比较差,求救...http://img1.sycdn.imooc.com//576e62580001ed7a06060494.jpg


正在回答

3 回答

这6个值(false, null, undefined, 空字符串'',数字0,数字NaN)被当作假(false),其他所有的值都被当作真(true),包括true、字符串"false",以及所有的对象。

于是你问的问题if/else,条件判断为false,从而走else分支。

1 回复 有任何疑惑可以回复我~
#1

慕UI1487848 提问者

嗯,谢谢!
2016-06-26 回复 有任何疑惑可以回复我~
#2

慕UI1487848 提问者

那题目的答案图片 if的true方向上 countMap1[t1]++;什么情况会出现,这样写的作用是??
2016-06-26 回复 有任何疑惑可以回复我~

countMap1['number']就是调用countMap.number,因为没有,会返回else,然后countMap.number=1,下次再出现就会执行countMap1['number']++,于是countMap.number=1,这里是在对arr里各种数据类型出现次数进行计数。

0 回复 有任何疑惑可以回复我~

也是不懂这一段 啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

第一次提问,老师图片答案那里 countMap1 = {} 是定义对象吧?然后我问题就来了。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信