[{"data":1,"prerenderedAt":447},["ShallowReactive",2],{"article-\u002Fpages\u002Fjs-boolean-xor":3},{"current":4,"prev":443,"next":446},{"id":5,"title":6,"body":7,"date":418,"description":419,"downloads":422,"extension":423,"hide":424,"links":425,"meta":426,"navigation":427,"path":428,"seo":429,"stem":431,"tags":432,"__hash__":442},"pages\u002Fpages\u002Fjs-boolean-xor.md","JavaScript布尔值异或（xor）",{"type":8,"value":9,"toc":410},"minimark",[10,20,38,47,132,139,150,353,364,367,406],[11,12,6,15],"h1",{"id":13,"class":14},"javascript布尔值异或xor","section-heading",[16,17],"a",{"class":18,"href":19},"section-link","#javascript布尔值异或xor",[21,22,23,24],"h2",{"id":23,"class":14},"代码说明",[16,25,27,33],{"class":18,"href":26},"#代码说明",[28,29,32],"span",{"className":30},[31],"visually-hidden","章节",[28,34,37],{"ariaHidden":35,"tabIndex":36},"true",-1," §",[39,40,41,42,46],"p",{},"定义",[43,44,45],"code",{},"xor","异或函数，传入两个布尔值，返回参数异或结果（对应下列真值表）。",[48,49,50,71],"table",{},[51,52,53],"thead",{},[54,55,56,63,68],"tr",{},[57,58,60,61],"th",{"align":59},"center","参数",[43,62,16],{},[57,64,60,65],{"align":59},[43,66,67],{},"b",[57,69,70],{"align":59},"返回值",[72,73,74,90,104,118],"tbody",{},[54,75,76,82,86],{},[77,78,79],"td",{"align":59},[43,80,81],{},"false",[77,83,84],{"align":59},[43,85,81],{},[77,87,88],{"align":59},[43,89,81],{},[54,91,92,96,100],{},[77,93,94],{"align":59},[43,95,81],{},[77,97,98],{"align":59},[43,99,35],{},[77,101,102],{"align":59},[43,103,35],{},[54,105,106,110,114],{},[77,107,108],{"align":59},[43,109,35],{},[77,111,112],{"align":59},[43,113,81],{},[77,115,116],{"align":59},[43,117,35],{},[54,119,120,124,128],{},[77,121,122],{"align":59},[43,123,35],{},[77,125,126],{"align":59},[43,127,35],{},[77,129,130],{"align":59},[43,131,81],{},[39,133,134,135,138],{},"本文介绍四种方法实现",[43,136,137],{},"JavaScript","布尔值异或，可根据实际需求选择。",[21,140,141,142],{"id":141,"class":14},"示例代码",[16,143,145,148],{"class":18,"href":144},"#示例代码",[28,146,32],{"className":147},[31],[28,149,37],{"ariaHidden":35,"tabIndex":36},[151,152,157],"pre",{"className":153,"code":154,"language":155,"meta":156,"style":156},"language-javascript shiki shiki-themes one-dark-pro one-dark-pro one-light","function xor(a, b) {\n  \u002F\u002F 参数归一化（可选）\n  a = Boolean(a);\n  b = Boolean(b);\n  \u002F\u002F 方法一\n  return a !== b;\n  \u002F\u002F 方法二\n  return a ? !b : b;\n  \u002F\u002F 方法三\n  return (a || b) && !(a && b);\n  \u002F\u002F 方法四\n  return Boolean(a ^ b);\n}\n","javascript","",[43,158,159,186,193,214,230,236,254,260,283,289,323,329,347],{"__ignoreMap":156},[28,160,163,167,171,175,178,181,183],{"class":161,"line":162},"line",1,[28,164,166],{"class":165},"sXQNX","function",[28,168,170],{"class":169},"sK8D8"," xor",[28,172,174],{"class":173},"sAxZK","(",[28,176,16],{"class":177},"s3Kta",[28,179,180],{"class":173},", ",[28,182,67],{"class":177},[28,184,185],{"class":173},") {\n",[28,187,189],{"class":161,"line":188},2,[28,190,192],{"class":191},"sT61s","  \u002F\u002F 参数归一化（可选）\n",[28,194,196,200,204,207,209,211],{"class":161,"line":195},3,[28,197,199],{"class":198},"s7S6e","  a",[28,201,203],{"class":202},"ssHZq"," =",[28,205,206],{"class":169}," Boolean",[28,208,174],{"class":173},[28,210,16],{"class":198},[28,212,213],{"class":173},");\n",[28,215,217,220,222,224,226,228],{"class":161,"line":216},4,[28,218,219],{"class":198},"  b",[28,221,203],{"class":202},[28,223,206],{"class":169},[28,225,174],{"class":173},[28,227,67],{"class":198},[28,229,213],{"class":173},[28,231,233],{"class":161,"line":232},5,[28,234,235],{"class":191},"  \u002F\u002F 方法一\n",[28,237,239,242,245,248,251],{"class":161,"line":238},6,[28,240,241],{"class":165},"  return",[28,243,244],{"class":198}," a",[28,246,247],{"class":202}," !==",[28,249,250],{"class":198}," b",[28,252,253],{"class":173},";\n",[28,255,257],{"class":161,"line":256},7,[28,258,259],{"class":191},"  \u002F\u002F 方法二\n",[28,261,263,265,267,271,274,276,279,281],{"class":161,"line":262},8,[28,264,241],{"class":165},[28,266,244],{"class":198},[28,268,270],{"class":269},"sk5z0"," ?",[28,272,273],{"class":202}," !",[28,275,67],{"class":198},[28,277,278],{"class":269}," :",[28,280,250],{"class":198},[28,282,253],{"class":173},[28,284,286],{"class":161,"line":285},9,[28,287,288],{"class":191},"  \u002F\u002F 方法三\n",[28,290,292,294,297,299,302,304,307,310,312,314,316,319,321],{"class":161,"line":291},10,[28,293,241],{"class":165},[28,295,296],{"class":173}," (",[28,298,16],{"class":198},[28,300,301],{"class":202}," ||",[28,303,250],{"class":198},[28,305,306],{"class":173},") ",[28,308,309],{"class":202},"&&",[28,311,273],{"class":202},[28,313,174],{"class":173},[28,315,16],{"class":198},[28,317,318],{"class":202}," &&",[28,320,250],{"class":198},[28,322,213],{"class":173},[28,324,326],{"class":161,"line":325},11,[28,327,328],{"class":191},"  \u002F\u002F 方法四\n",[28,330,332,334,336,338,340,343,345],{"class":161,"line":331},12,[28,333,241],{"class":165},[28,335,206],{"class":169},[28,337,174],{"class":173},[28,339,16],{"class":198},[28,341,342],{"class":202}," ^",[28,344,250],{"class":198},[28,346,213],{"class":173},[28,348,350],{"class":161,"line":349},13,[28,351,352],{"class":173},"}\n",[21,354,355,356],{"id":355,"class":14},"代码解释",[16,357,359,362],{"class":18,"href":358},"#代码解释",[28,360,32],{"className":361},[31],[28,363,37],{"ariaHidden":35,"tabIndex":36},[39,365,366],{},"在代码中，首先对参数进行归一化，确保类型正确。",[368,369,370,380,389,398],"ol",{},[371,372,373,374,376,377,379],"li",{},"在方法一中，根据异或运算的定义，通过判断参数",[43,375,16],{},"与参数",[43,378,67],{},"是否相同实现。",[371,381,382,383,385,386,388],{},"在方法二中，首先根据参数",[43,384,16],{},"来判断是否应该反转参数",[43,387,67],{},"进而实现。",[371,390,391,392,394,395,397],{},"在方法三中，通过观察真值表并对参数",[43,393,16],{},"与",[43,396,67],{},"进行逻辑运算实现。",[371,399,400,401,394,403,405],{},"在方法四中，通过隐式类型转换将参数",[43,402,16],{},[43,404,67],{},"视为整数异或并转换类型实现。",[407,408,409],"style",{},"html pre.shiki code .sXQNX, html code.shiki .sXQNX{--shiki-default:#C678DD;--shiki-dark:#C678DD;--shiki-light:#A626A4}html pre.shiki code .sK8D8, html code.shiki .sK8D8{--shiki-default:#61AFEF;--shiki-dark:#61AFEF;--shiki-light:#4078F2}html pre.shiki code .sAxZK, html code.shiki .sAxZK{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#383A42}html pre.shiki code .s3Kta, html code.shiki .s3Kta{--shiki-default:#E06C75;--shiki-default-font-style:italic;--shiki-dark:#E06C75;--shiki-dark-font-style:italic;--shiki-light:#383A42;--shiki-light-font-style:inherit}html pre.shiki code .sT61s, html code.shiki .sT61s{--shiki-default:#7F848E;--shiki-default-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;--shiki-light:#A0A1A7;--shiki-light-font-style:italic}html pre.shiki code .s7S6e, html code.shiki .s7S6e{--shiki-default:#E06C75;--shiki-dark:#E06C75;--shiki-light:#383A42}html pre.shiki code .ssHZq, html code.shiki .ssHZq{--shiki-default:#56B6C2;--shiki-dark:#56B6C2;--shiki-light:#0184BC}html pre.shiki code .sk5z0, html code.shiki .sk5z0{--shiki-default:#C678DD;--shiki-dark:#C678DD;--shiki-light:#0184BC}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}",{"title":156,"searchDepth":188,"depth":195,"links":411},[412,414,416],{"id":23,"depth":188,"text":413},"代码说明章节 §",{"id":141,"depth":188,"text":415},"示例代码章节 §",{"id":355,"depth":188,"text":417},"代码解释章节 §","2026\u002F09\u002F03",[420,421],"在JavaScript中定义xor异或函数，传入两个布尔值，返回参数异或结果。","本文介绍四种方法实现布尔值异或，可根据实际需求选择。",[],"md",false,[],{},true,"\u002Fpages\u002Fjs-boolean-xor",{"title":6,"description":430},[420,421],"pages\u002Fjs-boolean-xor",[433,436,439],[434,435],"lang","web",[437,438],"inspiration","original",[440,441],"content","snippet","dqVOAzoahqvu5X1HE-ZvinjU7P-xVNoy5DtlAVj1qus",{"title":444,"path":445},"EPFLimitRemover","\u002Fpages\u002Fepf-limit-remover",null,1788521248619]