馃コ娆㈣繋鎰熷叴瓒g殑灏忎紮浼翠竴璧峰仛鐐规湁鎰忎箟鐨勪簨鎯咃紒鎴戝彂璧蜂簡涓€涓瘡鍛ㄧ炕璇戦」鐩€備粨搴撳湴鍧€鍜岃闂湴鍧€杩樺緢缂哄織鍚岄亾鍚堢殑灏忎紮浼淬€傝繖绾补鏄釜浜哄叴瓒c€傚綋鐒讹紝涔熸湁鍔╀簬鎻愰珮鑻辫鍜屽墠绔妧鑳姐€傝姹傦細鑻辫涓嶈兘宸殑绂昏氨锛実ithub绮鹃€氾紝鏈夋瘏鍔涳紝璋﹁櫄锛屽仛浜嬫湁璐d换鎰熴€傛兂鍙備笌鐨勬湅鍙嬪彲浠x绉佷俊鎴栬€呭彂issue娑堟伅鍒颁粨搴撱€傛垜鐨勫崥瀹㈣繕鏈夊叿浣撶殑涓汉鑱旂郴鏂瑰紡锛歞aodaolee.cn鍓嶈█鎴戜滑閮藉笇鏈涜嚜宸卞啓鐨勪唬鐮佹竻鏅扮畝娲侊紝浣嗘湁鏃跺€欐垜浠彧鑳介€夋嫨涓や釜涔嬩竴锛氭竻鏅版垨鑰呯畝娲併€傛洿灏戠殑浠g爜琛屾剰鍛崇潃鏇村皯鐨勯殣钘忛敊璇紝浣嗘竻鏅般€佸彲璇荤殑浠g爜鏇存槗浜庣淮鎶ゅ拰淇敼銆備竴鑸潵璇达紝浼犵粺鏅烘収鍛婅瘔鎴戜滑锛屾竻鏅拌儨杩囩畝娲併€傚鏋滄偍蹇呴』鍦ㄥ彲璇绘€у拰绠€娲佹€т箣闂村仛鍑洪€夋嫨锛岃閫夋嫨鍙鎬с€傛墍浠ュ緢澶氫汉瀵逛笁鍏冭繍绠楃鎸佹€€鐤戞€佸害涔熶笉鏄病鏈夐亾鐞嗙殑銆傚綋鐒讹紝瀹冩瘮if璇彞鏇寸畝娲侊紝浣嗕篃寰堝鏄撳皢涓夊厓璇彞鍐欐垚涓€鍫嗙嫍灞庛€傛墍浠ュ湪澶勭悊闂鐨勬椂鍊欒灏忓績銆傛垜閫氬父鏇村枩娆f璇彞锛屽敖绠″畠鍦ㄥ彲璇绘€ф柟闈㈡湁涓€涓皬闂銆備笁鍏冨鏉傚害閭d箞涓轰粈涔堟湁浜涘紑鍙戜汉鍛樹細鎬€鐤戜笁鍏冭繍绠楃鍛紵璁╂垜浠粩缁嗙湅鐪嬪叾涓殑涓€浜涖€傛€紓浜轰滑涓嶅枩娆笁鍏冭繍绠楃鐨勫師鍥犱箣涓€鏄畠浠お鎬紓浜嗐€侸avaScript鏈夎澶氫簩鍏冭繍绠楃鈥斺€斾綔鐢ㄤ簬涓や釜琛ㄨ揪寮忕殑杩愮畻绗︺€傚湪杩欓噷鎻愬埌绠楁湳杩愮畻绗︼紝渚嬪+銆?銆?鍜?锛屼互鍙婂竷灏旇繍绠楃锛屼緥濡?&銆亅|鍜?==锛屾€诲叡鑷冲皯鏈?8涓簩鍏冭繍绠楃锛堝彇鍐充簬ECMAScript鐨勫綋鍓嶇増鏈級銆傚畠浠娇鐢ㄨ捣鏉ュ緢鐩磋锛氬乏杈规槸琛ㄨ揪寮忥紝杩愮畻绗︾鍙凤紝鍙宠竟鏄〃杈惧紡銆備竴鍏冭繍绠楃杈冨皯锛屼絾瀹冧滑涔熶笉閭d箞濂囨€€傝繖鏄惁瀹氳繍绠楃锛?銆傛偍鍙兘杩樹娇鐢ㄨ繃+鍜?鐨勪竴鍏冨舰寮忥紝渚嬪-1銆傚ぇ澶氭暟鎯呭喌涓嬶紝瀹冧滑瀵圭鍙峰彸渚х殑琛ㄨ揪寮忚繘琛屾搷浣滐紝浣跨敤璧锋潵鏇存柟渚裤€傞【鍚嶆€濅箟锛屼笁鍏冭繍绠楃瀵逛笁涓〃杈惧紡杩涜杩愮畻銆傛墍浠ユ垜浠敤涓や釜绗﹀彿鏉ュ啓瀹冿細锛熷拰锛氥€傚惁鍒欙紝鎴戜滑鏃犳硶鍒嗚鲸涓棿琛ㄨ揪寮忕殑寮€濮嬪拰缁撴潫浣嶇疆銆傛墍浠ュ啓娉曟槸杩欐牱鐨勶細(/*绗竴涓〃杈惧紡*/)?(/*绗簩涓〃杈惧紡*/):(/*绗笁涓〃杈惧紡*/)鍦ㄧ湡瀹炲満鏅腑锛屽畠鐪嬭捣鏉ュ儚杩欐牱锛歝onstprotocol=(request.secure)?'https':'http';濡傛灉绗竴涓〃杈惧紡涓衡€渢ruthy鈥濓紝鍒欎笁鍏冭В鏋愪负绗簩涓〃杈惧紡鐨勫€硷紝鍚﹀垯瑙f瀽涓虹涓変釜琛ㄨ揪寮忕殑鍊笺€備絾杩欏苟涓嶆槸瀹冨敮涓€鐨勬€紓涔嬪銆傚ぇ澶氭暟浜屽厓杩愮畻绗﹀叿鏈変竴鑷寸殑绫诲瀷锛氱畻鏈繍绠楃澶勭悊鏁板瓧锛屽竷灏旇繍绠楃澶勭悊甯冨皵鍊硷紝浣嶈繍绠楃涔熷鐞嗘暟瀛椼€傚浜庤繖浜涳紝涓や晶鐨勭被鍨嬬浉鍚屻€備絾鏄笁鍏冭繍绠楃鏈夊鎬殑绫诲瀷锛氫娇鐢ㄤ笁鍏冭繍绠楃锛岀浜屼釜鍜岀涓変釜琛ㄨ揪寮忓彲浠ユ槸浠讳綍绫诲瀷锛屼絾瑙i噴鍣ㄦ€绘槸灏嗙涓€涓浆鎹负甯冨皵鍊笺€傚浜庡紑鍙戜汉鍛樻潵璇达紝杩欏緢濂囨€€傚鍒濆鑰呬笉鍙嬪ソ涓巌f璇彞涓嶅悓锛屼笁鍏冭鍙ュ緢闅捐В閲婁负浼娉曘€備緥濡傦紝鍋囪鎴戜滑鏈夎繖鏍蜂竴涓猧f璇彞锛歩f(someCondition){takeAction();}else{someOtherAction();}濡傛灉someCondition涓虹湡锛屽垯璋冪敤鍑芥暟takeAction锛屽惁鍒欒皟鐢ㄥ嚱鏁皊omeOtherAction銆傜浉姣旇緝鑰岃█锛屼笁鍏冪殑鐗圭偣涓嶆槸寰堟槑鏄俱€備笁鍏冭繍绠楃铏界劧鐢辩绉樼鍙风粍鎴愶紝浣嗚璧锋潵鍗翠笉鍍忔甯哥殑鑻辫璇硶銆傚浜庡垵瀛﹁€呮潵璇达紝杩欏彲鑳芥湁鐐逛护浜哄ご鐤笺€備笉鍙鐨勪笁鑳炶儙鍗充娇鎮ㄤ笉鏄垵瀛﹁€呬篃寰堥毦闃呰銆傜壒鍒槸涓夋嫭鍙风殑闀胯〃杈惧紡锛歝onstten=Ratio.fromPair(10,1);constmaxYVal=Ratio.fromNumber(Math.max(...yValues));constminYVal=Ratio.fromNumber(Math.min(...yValues));constyAxisRange=(!maxYVal.minus(minYVal).isZero())锛焧en.pow(maxYVal.minus(minYVal).floorLog10()):ten.pow(maxYVal.plus(maxYVal.isZero()?Ratio.one:maxYVal).floorLog10());寰堥毦鐪嬪嚭鍙戠敓浜嗕粈涔堛€備笁鍏冪粍涓殑姣忎釜琛ㄨ揪寮忚嚦灏戞湁涓や釜閾惧紡鏂规硶璋冪敤銆傛洿涓嶇敤璇村祵濂楀湪鏈€缁堣〃杈惧紡涓殑鍙︿竴涓笁鍏冪粍浜嗐€傛垜涓嶅缓璁綘鍐欒繖鏍风殑浠g爜锛佸綋鐒讹紝鎴戜滑鍙互閫氳繃娣诲姞绌烘牸鍜屾崲琛屼娇鍏剁◢寰ソ涓€鐐癸細constten=Ratio.fromPair(10,1);constmaxYVal=Ratio.fromNumber(Math.max(...yValues));constminYVal=Ratio.fromNumber(Math.min(...yValues));constyAxisRange=!maxYVal.minus(minYVal).isZero()锛焧en.pow(maxYVal.minus(minYVal).floorLog10()):ten.pow(maxYVal.plus(maxYVal.isZero()?Ratio.one:maxYVal).floorLog10());姝eMartinFowler鎵€璇达細浠讳綍鍌荤摐閮藉彲浠ョ紪鍐欒绠楁満鍙互鐞嗚В鐨勪唬鐮侊紝鍙湁浼樼鐨勭▼搴忓憳鎵嶈兘缂栧啓鍑轰汉绫诲彲浠ョ悊瑙g殑浠g爜銆傚鏋滅湡鐨勫ソ鍚楋紵涓夊厓缁勫悇鏈夌己鐐癸紝浣嗚繕鏄湁涓€浜涗紭鐐圭殑锛氫竴鑸娇鐢ㄤ笁鍏冪粍鐨勬渶澶у師鍥犳槸绠€娲佺殑if璇彞涔熼€傜敤浜庝笁鍏冪粍鐨勪綅缃€傚綋鐒讹紝瀹冧滑杩樻槸鏈夊緢澶у尯鍒殑銆傝鎴戜滑鐪嬩袱娈典唬鐮侊細//ifstatementletresult;if(someCondition){result=calculationA();}else{result=calculationB();}//涓夊厓甯搁噺result=(someCondition)?璁$畻A():璁$畻B();浠庢煇绉嶈搴︽潵鐪嬶紝杩欎袱娈典唬鐮佹槸绛変环鐨勩€傚湪杩欎袱娈典唬鐮佺殑鏈€鍚庯紝涓€涓粨鏋滃彉閲忓皢琚缃负涓€涓€硷細calculationA()鎴朿alculationB()鐨勮繑鍥炲€笺€備絾浠庡彟涓€涓搴︽潵鐪嬶紝杩欎袱涓緥瀛愭槸瀹屽叏涓嶅悓鐨勶細if鏄竴涓鍙ワ紝鑰屼笁鍏冩槸涓€涓〃杈惧紡锛屾崲鍙ヨ瘽璇达細琛ㄨ揪寮忔€绘槸璁$畻鍑烘煇涓€硷紝瀹冩槸涓€涓崟涓€鐨勪唬鐮佸潡锛岃€屽0鏄庝笉鏄€傝繖鏄竴涓噸瑕佺殑姒傚康銆傝〃杈惧紡鐨勮绠楃粨鏋滀负涓€涓€硷紝鑰屽0鏄庝笉鑳藉皢璇彞鐨勭粨鏋滃垎閰嶇粰鍙橀噺鎴栧皢璇彞鐨勭粨鏋滀綔涓哄嚱鏁板弬鏁颁紶閫掋€俰f鏄鍙ワ紝涓嶆槸琛ㄨ揪寮忋€傚湪鏌愮绋嬪害涓婏紝杩欏氨鏄嚱鏁板紡缂栫▼鐨勬牳蹇冩€濇兂銆備负浜嗛伩鍏嶄唬鐮佹棤褰腑浜х敓鐨勫皬闂锛屼娇鐢ㄨ鍙ユ潵閬垮厤涓€浜涢棶棰樸€傛垜鏇村枩娆㈠敖鍙兘浣跨敤绾嚱鏁般€傚鏋滀竴涓嚱鏁版槸绾嚱鏁帮紝閭d箞鐭ラ亾瀹冮櫎浜嗛€昏緫鍜岃繑鍥炲€间粈涔堥兘涓嶅仛灏辫冻澶熶簡銆傚啀鐪嬭繖娈典唬鐮侊細if(someCondition){takeAction();}else{someOtherAction();}takeAction鍜宻omeOtherAction娌℃湁杩斿洖鍊硷紝浼氳烦鍑哄綋鍓嶅潡锛岄偅涔堜細涓嶄細閫犳垚涓€瀹氱殑闅愭偅鍛紵鍐嶇湅鐪嬩笁鍏冭繍绠楃锛屾垜浠枩娆㈣〃杈惧紡锛屽洜涓鸿〃杈惧紡姣旇鍙ユ洿鍙粍鍚堛€傛垜浠彲浠ヤ娇鐢ㄨ繍绠楃鍜屽嚱鏁颁粠绠€鍗曠殑琛ㄨ揪寮忔瀯寤哄鏉傜殑琛ㄨ揪寮忋€備緥濡傦紝鎴戜滑鍙互浣跨敤杩炴帴杩愮畻绗︽瀯寤哄鏉傜殑瀛楃涓诧細('
