亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

條件判斷,表達式優先級

  1. (match = rcomma.exec(soFar))這個為何每次都能為真?,即使match的值為null。?

  2. groups.push((tokens = []));這個為何先push tokens原值然后賦新值,難道是因為函數表達式的的優先級高于賦值表達式,求解答。

正在回答

3 回答

第二條我的個人理解:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? groups.push((tokens = []))的執行順序? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 先賦值tokens=[] =>groups.push(tokens)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 因為tokens是引用類型所以tokens再獲取值時,groups的值也得到更新

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

說一下第二條我個人的理解

可以將gourps.push((tokens = []))拆分為?

tokens= [];

groups.push(tokens);

tokens是接收了一個的數據,并將他push到groups,groups的結構就變成groups:[ [] ], 這里面的數組和tokens的數組指向的是同一個內存地址, 所以在下面的tokens.push操作中改變了數組的數據,對應的之前push到groups的數組也是改變了的。

表達的不是很清楚,用一個簡單的例子應該就明白了,tokens只是保存數組的內存地址。

https://img1.sycdn.imooc.com//5b3f3da200016c1602210178.jpg

1 回復 有任何疑惑可以回復我~

喔,1看錯了,push沒理解到,SORRY。求2解說。

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

幽靈柯

是的,你說的很好
2018-05-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

條件判斷,表達式優先級

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號