විෂය පථය
Ically තිහාසිකව, ජාවාස්ක්රිප්ට් කාර්යයන් විෂය පථයට ලක් කරන්නේ කෙසේද යන්න පිළිබඳව ව්යාකූල වී ඇත. සමහර විට ඒවා සංඛ්යානමය වශයෙන් විෂය පථයට අයත් බව පෙනේ, නමුත් සමහර ලක්ෂණ ඔවුන් ගතිකව විෂය පථයට සමාන ලෙස හැසිරීමට හේතු වේ. මෙය අවුල් සහගත වන අතර වැඩසටහන් කියවීමට හා තේරුම් ගැනීමට අපහසු වේ. වරදවා වටහා ගැනීම දෝෂ ඇති කරයි. එය කාර්ය සාධනය සඳහා ද ගැටලුවකි. ස්ථිතික විෂය පථය මඟින් විචල්ය බන්ධන සම්පාදනය කරන වේලාවේදී සිදුවීමට ඉඩ දෙනු ඇත, නමුත් ගතික විෂය පථයේ අවශ්යතාවයෙන් අදහස් වන්නේ බන්ධනය ධාවන කාලයට කල් දැමිය යුතු අතර එය සැලකිය යුතු කාර්ය සාධන ද .ුවමක් සමඟ පැමිණේ.
දැඩි ප්රකාරයට සියලු විචල්ය බන්ධන සංඛ්යාත්මකව සිදු කිරීම අවශ්ය වේ. ඒ කියන්නේ මීට පෙර ගතික බන්ධනය අවශ්ය වූ අංග ඉවත් කිරීම හෝ වෙනස් කිරීම කළ යුතුය. නිශ්චිතවම, විත් ප්රකාශය තුරන් කර ඇති අතර, එවාල් ශ්රිතයට එහි අමතන්නාගේ පරිසරය හානි කිරීමට ඇති හැකියාව දැඩි ලෙස සීමා කර ඇත.
දැඩි කේතයේ එක් වාසියක් නම්, යූඅයි සම්පීඩකය වැනි මෙවලම්
සැකසීමේදී වඩා හොඳ කාර්යයක් කළ හැකි වීමයි.
ගම්ය වූ ගෝලීය විචල්යයන්
ජාවාස්ක්රිප්ට් ගෝලීය විචල්යයන් ඇඟවුම් කර ඇත. ඔබ විචල්යයක් පැහැදිලිව ප්රකාශ නොකරන්නේ නම්, ගෝලීය විචල්යයක් ඔබ වෙනුවෙන් ව්යංගයෙන් ප්රකාශයට පත් කෙරේ. මෙය ආරම්භකයින්ට ඔවුන්ගේ මූලික ගෙදර දොරේ වැඩ කටයුතු අතපසු කළ හැකි බැවින් වැඩසටහන්කරණය පහසු කරයි. නමුත් එය විශාල වැඩසටහන් කළමනාකරණය කිරීම වඩා දුෂ්කර කරවන අතර එය විශ්වසනීයත්වය සැලකිය යුතු ලෙස පිරිහීමට ලක් කරයි. එබැවින් දැඩි ප්රකාරයේදී, ගම්ය වන ගෝලීය විචල්යයන් තවදුරටත් නිර්මාණය නොවේ. ඔබේ සියලු විචල්යයන් ඔබ පැහැදිලිව ප්රකාශ කළ යුතුය.
ගෝලීය කාන්දුව
this
ගෝලීය වස්තුවට බැඳීමට හේතු විය හැකි අවස්ථා ගණනාවක් තිබේ . නිදසුනක් ලෙස, new
ඉදිකිරීම්කරුවෙකුගේ ශ්රිතයක් ඇමතීමේදී උපසර්ගය ලබා දීමට ඔබ අමතක කළහොත් , ඉදිකිරීම්කරුගේ this
අනපේක්ෂිත ලෙස ගෝලීය වස්තුවට බැඳී ඇත, එබැවින් නව වස්තුවක් ආරම්භ කිරීම වෙනුවට එය නිහ ly ව ගෝලීය විචල්යයන් සමඟ පටලවා ගනු ඇත. මෙම අවස්ථා වලදී, දැඩි මාදිලිය ඒ වෙනුවට බැඳී this
ඇතundefined
, එමඟින් ඉදිකිරීම්කරු විසින් ව්යතිරේකයක් විසි කිරීමට හේතු වන අතර එමඟින් දෝෂය ඉක්මනින් හඳුනා ගැනීමට ඉඩ ලබා දේ.
Is ෝෂාකාරී අසමත් වීම
ජාවාස්ක්රිප්ට් හි සෑම විටම කියවීමට-පමණක් ගුණාංග ඇත, නමුත් ඔබට ඊඑස් 5 වන තෙක් ඒවා තනිවම නිර්මාණය කළ නොහැක Object.createProperty
ක්රියාකාරීත්වය එම හැකියාව හෙළි කරන . ඔබ කියවීමට පමණක් ඇති දේපලකට වටිනාකමක් ලබා දීමට උත්සාහ කළහොත් එය නිහ .ව අසාර්ථක වනු ඇත. පැවරුම දේපල වටිනාකම වෙනස් නොකරනු ඇත, නමුත් ඔබේ වැඩසටහන එහි ඇති ආකාරයටම ඉදිරියට යනු ඇත. මෙය අඛණ්ඩතාවයේ උපද්රවයක් වන අතර එමඟින් වැඩසටහන් නොගැලපෙන තත්වයකට පත්වේ. දැඩි ප්රකාරයේදී, කියවීමට පමණක් ඇති දේපලක් වෙනස් කිරීමට උත්සාහ කිරීම ව්යතිරේකයක් වනු ඇත.
ඔක්ටල්
වචන ප්රමාණය 3 ට වඩා වැඩි වූ යන්ත්රවල යන්ත්ර මට්ටමේ ක්රමලේඛන සිදු කරන විට අංකවල අෂ්ටක (හෝ පාදක 8) නිරූපණය අතිශයින් ප්රයෝජනවත් විය. වචන විශාලත්වය බිට් 60 ක් වූ සීඩීසී 6600 මේන්ෆ්රේම් සමඟ වැඩ කිරීමේදී ඔබට අෂ්ටක අවශ්ය විය. ඔබට අෂ්ටකය කියවිය හැකි නම්, ඔබට වචනයක් ඉලක්කම් 20 ක් ලෙස බැලිය හැකිය. ඉලක්කම් දෙකක් දෘෂ්ටි කේතය නිරූපණය කළ අතර එක් ඉලක්කම් ලේඛණ 8 න් එකක් හඳුනා ගත්තේය. යන්ත්ර කේතවල සිට ඉහළ මට්ටමේ භාෂාවලට මන්දගාමීව මාරුවීමේදී, ක්රමලේඛන භාෂාවල අෂ්ටක ආකෘති සැපයීම ප්රයෝජනවත් යැයි සිතේ.
සී හි දී, අෂ්ටකතාවයේ අතිශය අවාසනාවන්ත නිරූපණයක් තෝරා ගන්නා ලදී: ප්රමුඛ ශුන්යය. එබැවින් C හි, 0100
64, 100 නොව 100 වන අතර 08
එය දෝෂයකි, 8 නොවේ. ඊටත් වඩා අවාසනාවකට මෙන්, මෙම ඇනක්රොනිස්වාදය ජාවාස්ක්රිප්ට් ඇතුළු සියලුම නවීන භාෂාවලට පිටපත් කර ඇත, එහිදී එය දෝෂ නිර්මාණය කිරීමට පමණක් භාවිතා කරයි. එයට වෙනත් අරමුණක් නැත. එබැවින් දැඩි ප්රකාරයේදී, අෂ්ටක ආකෘති තවදුරටත් ඉඩ නොදේ.
සහ සෙටෙරා
ව්යාජ අරාව ES5 හි තව ටිකක් අරාව-සමාන වේ. දැඩි ප්රකාරයේදී, එය එහි callee
සහ caller
ගුණාංග නැති කරයි. මෙය arguments
බොහෝ රහස්ය සන්දර්භයන් අත් නොහරිමින් ඔබේ විශ්වාසනීය නොවන කේතයට යැවීමට ඉඩ සලසයි . එසේම,
arguments
කාර්යයන්හි දේපල ඉවත් කරනු ලැබේ.
දැඩි ප්රකාරයේදී, ශ්රිතයක අනුපිටපත් යතුරු සින්ටැක්ස් දෝෂයක් ඇති කරයි. ශ්රිතයකට එකම නමක් සහිත පරාමිති දෙකක් තිබිය නොහැක. ශ්රිතයකට එහි පරාමිතීන්ගෙන් එකකට සමාන විචල්යයක් තිබිය නොහැක. ශ්රිතයකට delete
එහි විචල්යයන් තිබිය නොහැක . delete
වින්යාසගත කළ නොහැකි දේපලකට උත්සාහ කිරීම
දැන් ව්යතිරේකයකි. ප්රාථමික අගයන් ව්යංගයෙන් ඔතා නැත.
ECMAScript 5 වෙන් කළ වචන ලැයිස්තුවක් එක් කරයි. ඔබ ඒවා විචල්ය හෝ තර්ක ලෙස භාවිතා කරන්නේ නම්, දැඩි ප්රකාරය දෝෂයක් ඇති කරයි. වෙන් කර ඇති වචන නම්: