请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于j[0]取值的问题

let o = (j[0] ^ 1).toString().repeat(j.length);
这里的(j[0] ^ 1),j[0]是0,(j[0] ^ 1)取到了1,测试正常,
但是这里不加[0],(j ^ 1)也能取到1,但是测试的时候会报错,请问这是为什么呢

正在回答 回答被采纳积分+3

插入代码

2回答

自驱动 2020-03-22 17:05:50

00^1=1  

11^1=10

如果是1开头,那不懵了。

0 回复 有任何疑惑可以回复我~
快乐动起来呀 2020-01-09 21:18:22

j^1的意义是什么呢?你知道咱们这么做的目的是什么嘛

0 回复 有任何疑惑可以回复我~
  • 提问者 慕用0863198 #1
    j = str.match(/^(0+|1+)/)[0],在这个地方取到的是匹配str的首尾连起来的字符,为00,或者0,或者11,或者1。
    使用o = (j[0]^1),则(j[0]^1)这里的定义是j和1只有一个为1,o才能为1,而这里已经定义了1,所以j[0]为1的时候o为0,j[0]为1的时候o为0。
    取j[0]是表示取j字符串的第0个子字符,即1或者0。
    可是获取到的j为00,进行 o = (j ^ 1)的时候,o也是能取到1的,那为什么运行时会报错呢
    回复 有任何疑惑可以回复我~ 2020-01-09 21:28:24
  • 快乐动起来呀 回复 提问者 慕用0863198 #2
    目的取1位进行位运算,00位运算没有意义
    回复 有任何疑惑可以回复我~ 2020-01-14 00:09:52
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号