昨天在看Ext的源碼時(shí)發(fā)現(xiàn)了以下代碼attributes = attributes || {};一直以為js中的邏輯操作符返回的結(jié)果是boolean值即true或false,查了下文檔才發(fā)現(xiàn)其實(shí)不然.
js的邏輯操作符有3種,即邏輯與(&&),邏輯或(||)和邏輯非(!).邏輯非始終返回一個(gè)boolean值,即true或false.而邏輯與和邏輯或則不一定返回boolean值.查了下文檔才明白邏輯與和邏輯或執(zhí)行的規(guī)則:
邏輯與(&&):
1.先執(zhí)行左邊的表達(dá)式,得到該表達(dá)式的值.
2.嘗試將該值轉(zhuǎn)換成boolean.
3.如果2的結(jié)果是false,則返回1中得到的值(如果該值不是false,而是一個(gè)其他的值,比如是個(gè)對(duì)象,則將返回這個(gè)對(duì)象而不是false),執(zhí)行完畢.
4.如果2的結(jié)果是true,執(zhí)行右邊表達(dá)式并得到值.
5.返回4中得到的值.
邏輯或(||):
1.先執(zhí)行左邊的表達(dá)式,得到該表達(dá)式的值.
2.嘗試將該值轉(zhuǎn)換成boolean.
3.如果2的結(jié)果是true,則返回1中得到的值,執(zhí)行完畢.
4.如果2的結(jié)果是false,執(zhí)行右邊表達(dá)式并得到值.
5.返回4中得到的值.
總結(jié):邏輯與如果左邊是false,則整個(gè)表達(dá)式的值是左邊表達(dá)式的值,如果為true,則整個(gè)表達(dá)式的值是右邊表達(dá)式的值.
邏輯或如果左邊是true,則整個(gè)表達(dá)式的值是左邊表達(dá)式的值,如果為false,則整個(gè)表達(dá)式的值是右邊表達(dá)式的值.
posted @
2008-03-13 10:30 zhangchao 閱讀(826) |
評(píng)論 (1) |
編輯 收藏
摘要: 引子
編程世界里只存在兩種基本元素,一個(gè)是數(shù)據(jù),一個(gè)是代碼。編程世界就是在數(shù)據(jù)和代碼千絲萬縷的糾纏中呈現(xiàn)出無限的生機(jī)和活力。
數(shù)據(jù)天生就是文靜的,總想保持自己固有的本色;而代碼卻天生活潑,總想改變這個(gè)世界。
你看,數(shù)據(jù)代碼間的關(guān)系與物質(zhì)能量間的關(guān)系有著驚人的...
閱讀全文
posted @
2008-03-05 11:07 zhangchao 閱讀(451) |
評(píng)論 (0) |
編輯 收藏
今天是2月22日,爸爸的生日。等了許久的報(bào)告終于出來了,情況很好.我想這是爸爸收到的最貴重的生日禮物了,勝過任何的物質(zhì)。今天我也很高興,希望爸爸一天天的好起來.
posted @
2008-02-22 23:27 zhangchao 閱讀(194) |
評(píng)論 (0) |
編輯 收藏