අද මම කතා කරන්න යන්නේ javascript වල එන inbulit function එකක් වෙන eval() function එක ගැන. eval() function එක කියන්නේ javascript වල තියෙන ටිකක් dangerous වගේම magical function එකක්.
Uses of the eval( )
function
1.eval()ට string එකක් javascript විදියට evaluate කරගන්න පුළුවන්.
consider the following example.
උඩ දීලා තියෙන example එකට අනුව console.log වලදී eval() function එකට argument විදියට string x+y pass කරලා තියනවා .එතකොට output එක විදියට 5 ලැබේ.මොකද eval()තුලදී string එකත් javascript එකක් විදියට excute වීමක් සිදු වේ
2. function එකකට call කරන්නත් eval() use කරන්න පුලවන්.
consider the following example.
3.eval() ට arrays, objects වාගේ data struchers එක්ක වැඩ කරන්න පුලවන්
consider the following example.
4.JSON Parsing වලටත් eval( ) use කරන්න පුලවන්
හරි json parsing කියන්නේ json එකක් ඇතුලේ තියෙන data අපි use කරන object type එකට convert කරන conversion එක.මේකට eval() use කරන්න පුලවන්.නමුත් දැන් නම් එක use වෙන්නේ නැහැ.ඒ වෙනුවට altenative එකක් තියෙනවා.
Beware ! "devil in eval()
"
අපි උඩදී කතා කරා වගේ eval() කියන්නේ ටිකක් පරිස්සමින් use කරන්න ඕනේ function එකක්.
The Devil is in the Details
1.Security Risks
In programming, eval()
is a bit like our magic box.හිතන්න මේ magic box එකෙන් අපිට කැමති දෙයක් කරන්න පුලවන්.මේ magic box එක අනවශ්ය කෙනක් අතට ගියොත් ගොඩක් harmfull දේවල් කරන්න පුලවන්.However, if it is used carelessly or with untrusted input, it can introduce security vulnerabilities in eval()
2.Performance Concerns
මේ eval() වල තියෙන ලොකු අඩුපාඩුවක් තමා lessperformace speed.perfomace speed අඩු වෙන්න්න හේතු කිහිපයක් තියෙනවා.
parsing and compiling
eval() parsing and compiling වෙන්නේ runtime එකේදී එතකොට js engine එකට runtime එක්දි code execution එකට අමතර effort එකක් දරන්න වෙනවා එක එක හේතුවක් low speed වෙන්න.
3.Caching
modern javascript engine වලට function cache කරන්න පුලවන් හැකියව තියෙනවා එක නිසා excution එක fast but eval() වලදී මේ caching process එක effiency මදි.මේකත් eval()speed අඩු වෙන්න එක හේතුවක්.තවද modern js engine වලට code optimization හැකියාවක් තියනවා එත් eval() js engine වලට optimization efficiency low
මෙන්න මේ වගේ හේතු නිසා eval() function එක ටිකක් dangerous function එකක් විදියට තමා සලකන්නේ.මේ වෙද්දී javascript කියන්නේ ගොඩක් දියුණු progamming lanuage එකක් නිසා මේ වෙනුවට alternatives ගොඩක් තියනවා.
In the next article, I am going to write about the alternatives to the eval().
if there is something that you cannot agree with or something that needs to be added, please let me know through a response (comment).
you can find more information from the following sources