JS හි ශ්රිතයක් නිර්මාණය කිරීම සඳහා විශාල පිළිකුලක් ඇති බව පෙනේ. මෙම පිළිකුල නිසා මිනිසුන් දක්ෂ වීමට උත්සාහ කරන අතර හාස්යජනක උපක්රම භාවිතා කරමින් ක්රියා ඇමතුමක් වැනි දේවල් එක පේළියක තබා ගත හැකිය. ඇත්ත වශයෙන්ම ඇමතුමක ක්රියාකාරී නාමය අතිරේක ලියකියවිලි ලෙසද ක්රියා කරයි. උපක්රමශීලී ප්රකාශනයකට අපට අදහසක් ඇමිණිය නොහැක, මන්ද එය එසේ කිරීමෙන් එය පරාජය වනු ඇත, එබැවින් අපි එය "js idiom" ලෙස හඳුන්වන අතර හදිසියේම එය තේරුම් ගත හැකිය.
ජාවාස්ක්රිප්ට් අතිශයින්ම ප්රවේශ විය හැකි ය, බොහෝ අය අප මෙන් උදේ ආහාරය සඳහා පිරිවිතර අනුභව නොකරති. එබැවින් මෝඩයෙකුගේ සැඟවුණු උපකල්පන සහ අද්දර සිද්ධීන් මොනවාදැයි ඔවුන්ට කිසි විටෙකත් වැටහෙන්නේ නැත.
x = x || 'default_value';
සාමාන්ය ජෝට මෙය තේරෙන්නේ නැත, නැතහොත් එය පෙරනිමි අගය සඳහා මෝඩකම බව කටපාඩම් කර ඇත. දෙකම හානිකර ය, ඇත්ත වශයෙන්ම දෙවැන්න ඊටත් වඩා හානිකර ය. ඔහු මෙහි උපකල්පන සහ අද්දර සිද්ධීන් තේරුම් නොගනී. පිරිවිතර කියවා එය තේරුම් ගැනීමට ඔහු උනන්දු නොවනු ඇත.
මම කේතය දෙස විට "මම දකින ඒක නම් null
හෝ undefined
, පසුව මෙම පෙරනිමි අගය ලෙස සකස් කර ගන්න. එය ද නිසැකයෙන්ම සංග්රහ වුවත් +0
, -0
, NaN
, false
, සහ ""
සුදුසු නොවන අගයන් ලෙස. මම දැන් මාස 3 විට බව අවශ්යතා මතක තබා ගැනීමට සිදු වනු ඇත වෙනස් කිරීමට. මට එය බොහෝ විට අමතක වනු ඇත.
ව්යංග උපකල්පනය අනාගතයේ දී දෝෂයක් ඇති කිරීමට බොහෝ දුරට ඉඩ ඇති අතර ඔබේ කේත රචනය මෙවැනි උපක්රම වලින් පිරී ඇති විට, වෙනස් කිරීමකට බලපාන්නේ කුමක් දැයි ඔබ සිතන සෑම අවස්ථාවකම ඒවා සියල්ලම ඔබේ හිසෙහි තබා ගැනීමට අවස්ථාවක් නොමැත. මෙය "ජේඑස් ප්රෝ" සඳහා වන අතර, ආරම්භය සඳහා ව්යාජ වටිනාකමක් පිළිගැනීමට අවශ්ය වුව ද සාමාන්ය ජෝ විසින් දෝෂය ලියා ඇත.
ඔබගේ නව ස්නිපටයේ වඩාත් හුරුපුරුදු සින්ටැක්ස් ඇති නමුත් ඉහත ගැටලුව තවමත් පවතී.
ඔබට සමඟ යා හැකිය:
function f(x) {
x = valueOrDefault(x, "default_value");
}
දැන් ඔබට ඉතා සංකීර්ණ තර්කනයක් තිබිය හැකි අතර සේවාදායක කේතය තවමත් ලස්සන හා කියවිය හැකි ලෙස පෙනේ.
දැන්, ශ්රිතයක් තර්කයක් ලෙස සම්මත කිරීම හෝ දක්ෂ උපක්රමයක් වැනි උසස් භාෂා විශේෂාංග අතර වෙනස හඳුනා ගන්නේ කෙසේද || "default"
?
කේතය මුලින් නිර්මාණය කළ විට නොසලකා හැරිය හැකි සැඟවුණු උපකල්පන යටතේ දක්ෂ උපක්රම සැමවිටම ක්රියාත්මක වේ. අවශ්යතාවයක් වෙනස් වූ නිසා මට එය කිසි විටෙකත් IIFE වෙනත් දෙයකට වෙනස් කිරීමට සිදු නොවේ. සමහර විට 2020 දී මට සැබෑ මොඩියුල භාවිතා කළ හැකි නමුත් ඔව්.
| 0
හෝ ~~num
බිම් මහල සඳහා භාවිතා කරන භාණ්ඩ ප්රවාහණ අනුවාදය ධනාත්මක සහ බිට් 32 අත්සන් කළ පූර්ණ සංඛ්යා සීමාවන් උපකල්පනය කරයි.
|| "default"
සියලු ව්යාජ අගයන් කිසිසේත් තර්කයක් සම්මත නොකිරීමට සමාන යැයි උපකල්පනය කරයි.
සහ යනාදි.