JavaScript Operator Precedence
JavaScript Operator Precedence అంటే ఏమిటి?
ఒక expression లో ఒకటి కంటే ఎక్కువ operators ఉన్నప్పుడు వాటిని ఏ క్రమంలో execute చేయాలో నిర్ణయించేది operator precedence.
సాధారణంగా JavaScript ఈ క్రమాన్ని అనుసరిస్తుంది:
- Parentheses: ()
- Exponentiation: **
- Multiplication, division, remainder: *, /, %
- Addition and subtraction: +, –
ఒకే precedence ఉన్న operators ఉంటే, వాటిని సాధారణంగా left to right క్రమంలో evaluate చేస్తుంది. ఉదాహరణకు 20 / 5 * 2 లో division మరియు multiplication రెండింటికీ ఒకే precedence ఉంటుంది. అందువల్ల ముందుగా 20 / 5, తరువాత వచ్చిన result ను 2 తో multiply చేస్తుంది.
Parentheses ఉపయోగం
మనకు కావలసిన calculation order ను స్పష్టంగా చెప్పడానికి parentheses ఉపయోగించాలి. 2 + 3 * 4 లో ముందుగా multiplication జరుగుతుంది, కాబట్టి result 14. కానీ (2 + 3) * 4 లో parentheses లోని addition ముందుగా జరుగుతుంది, కాబట్టి result 20.
Operator precedence మరియు type conversion
కొన్ని expressions లో JavaScript values ను automatically convert చేయవచ్చు. ఉదాహరణకు “5” – 2 లో string “5” number గా convert అవుతుంది, కాబట్టి result 3. కానీ “5” + 2 లో + string concatenation గా పనిచేసి “52” result ఇస్తుంది. అందువల్ల precedence తో పాటు operator behavior మరియు data types కూడా గమనించాలి.
Complex expressions ను సులభంగా అర్థం చేసుకోవడానికి parentheses ఉపయోగించడం మంచి practice. ఇది code readability ను పెంచుతుంది మరియు calculation mistakes ను తగ్గిస్తుంది.
Simple Explanation
Operator precedence అంటే operators పని చేసే priority order. ముందుగా parentheses, తరువాత multiplication లేదా division, చివరగా addition లేదా subtraction జరుగుతాయి.
ఉదాహరణ: 10 + 2 * 3 లో మొదట 2 * 3 జరుగుతుంది. Result 6. తరువాత 10 + 6 జరిగి final result 16 అవుతుంది.
కానీ (10 + 2) * 3 లో parentheses కారణంగా ముందుగా 10 + 2 జరుగుతుంది. Final result 36.
Real-Life Example
ఒక shop లో ఒక notebook ధర ₹100, మీరు 2 notebooks కొనుగోలు చేశారని అనుకుందాం. ముందుగా మొత్తం ధరను calculate చేసి, తరువాత discount తీసివేయాలి. ఇది operator precedence లాంటిదే: ముందుగా ముఖ్యమైన calculation, తరువాత మిగిలిన calculation జరుగుతుంది.
Code లో price * quantity – discount అని రాస్తే multiplication ముందుగా జరుగుతుంది. Calculation order స్పష్టంగా ఉండటానికి (price * quantity) – discount అని రాయడం ఇంకా మంచిది.
Code Examples
Multiplication కు Addition కంటే ఎక్కువ precedence
const result = 10 + 2 * 3;
console.log(result);
ముందుగా 2 * 3 execute అవుతుంది, ఎందుకంటే multiplication కు addition కంటే ఎక్కువ precedence ఉంది. తరువాత వచ్చిన 6 ను 10 తో add చేస్తుంది.
16
Parentheses తో calculation order మార్చడం
const normalResult = 2 + 3 * 4;
const groupedResult = (2 + 3) * 4;
console.log(normalResult);
console.log(groupedResult);
మొదటి expression లో multiplication ముందుగా జరిగి result 14 వస్తుంది. రెండవ expression లో parentheses కారణంగా addition ముందుగా జరిగి result 20 వస్తుంది.
14 20
ఒకే precedence ఉన్న operators యొక్క left-to-right order
const result = 20 / 5 * 2;
console.log(result);
/ మరియు * operators కు ఒకే precedence ఉంటుంది. అందువల్ల expression ను left నుండి right కు evaluate చేస్తుంది: ముందుగా 20 / 5, తరువాత వచ్చిన result ను 2 తో multiply చేస్తుంది.
8
String మరియు number తో + operator behavior
const numericResult = "5" - 2;
const textResult = "5" + 2;
console.log(numericResult);
console.log(textResult);
“5” – 2 లో JavaScript string ను number గా convert చేసి subtraction చేస్తుంది. కానీ “5” + 2 లో plus operator string concatenation గా పనిచేస్తుంది.
3 52
Line-by-Line Explanation
ఈ line లో const తో result అనే variable create అవుతుంది. Multiplication కు ఎక్కువ precedence ఉండటం వల్ల ముందుగా 2 * 3 calculate అవుతుంది. తరువాత 10 కు 6 add అవుతుంది.
ఈ line result variable లో ఉన్న final value ను console లో చూపిస్తుంది.
ఇక్కడ multiplication ముందుగా జరుగుతుంది. 3 * 4 విలువ 12, తరువాత 2 add చేసి normalResult విలువ 14 అవుతుంది.
Parentheses లోని 2 + 3 ముందుగా execute అవుతుంది. ఆ result 5 ను 4 తో multiply చేయడం వల్ల groupedResult విలువ 20 అవుతుంది.
normalResult లో ఉన్న 14 ను console లో print చేస్తుంది.
groupedResult లో ఉన్న 20 ను console లో print చేస్తుంది.
Try It
Try this JavaScript code:
const firstValue = 10;
const secondValue = 2;
const thirdValue = 3;
const result = firstValue + secondValue * thirdValue;
console.log(result);
Practice
Practice:
ఒక product ధర 100, quantity 2, discount 10% ఉన్నాయి. Operator precedence మరియు parentheses ఉపయోగించి discount తరువాత వచ్చే final price ను calculate చేయండి. finalPrice విలువ 180 రావాలి.
Hint:
ముందుగా price * quantity తో subtotal కనుగొనండి. Discount fraction కోసం discount / 100 ఉపయోగించి, దాన్ని 1 నుండి తీసివేయండి.
Common Mistakes
2 + 3 * 4 ను left-to-right గా calculate చేసి result 20 అనుకోవడం.
Multiplication కు addition కంటే ఎక్కువ precedence ఉంటుంది. కాబట్టి ముందుగా 3 * 4 చేసి result 14 వస్తుంది. Result 20 కావాలంటే (2 + 3) * 4 రాయాలి.
Complex expression లో parentheses ఉపయోగించకుండా code రాయడం.
JavaScript precedence rules తెలిసినా, calculation order ను స్పష్టంగా చూపించడానికి parentheses ఉపయోగించండి. ఉదాహరణకు (price * quantity) – discount.
“5” + 2 result 7 వస్తుందని అనుకోవడం.
+ operator string తో ఉపయోగించినప్పుడు concatenation చేయవచ్చు. అందువల్ల result “52” అవుతుంది. Numeric addition కావాలంటే value ను number గా convert చేయాలి.
ఒకే precedence ఉన్న operators కూడా ఎల్లప్పుడూ ఒకేలా group అవుతాయని అనుకోవడం.
ఒకే precedence ఉన్న చాలా arithmetic operators ను JavaScript left-to-right గా evaluate చేస్తుంది. ఉదాహరణకు 20 / 5 * 2 result 8.
Interview Questions
JavaScript లో operator precedence అంటే ఏమిటి?
Answer:
ఒక expression లో ఉన్న multiple operators ను ఏ order లో execute చేయాలో నిర్ణయించే priority rules ను operator precedence అంటారు.
2 + 3 * 4 మరియు (2 + 3) * 4 results ఏమిటి? ఎందుకు?
Answer:
మొదటి expression result 14, ఎందుకంటే multiplication ముందుగా జరుగుతుంది. రెండవ expression result 20, ఎందుకంటే parentheses లోని addition ముందుగా జరుగుతుంది.
20 / 5 * 2 expression result ఏమిటి?
Answer:
Result 8. Division మరియు multiplication కు ఒకే precedence ఉండటంతో expression left-to-right గా evaluate అవుతుంది: 20 / 5 = 4, తరువాత 4 * 2 = 8.
“5” – 2 మరియు “5” + 2 results ఎందుకు వేర్వేరు?
Answer:
Minus operator string ను number గా convert చేసి subtraction చేస్తుంది, కాబట్టి result 3. Plus operator string తో concatenation చేయగలదు, కాబట్టి రెండవ result “52” అవుతుంది.
Exam Questions
const value = 5 + 2 * 3; తరువాత value లో ఏ సంఖ్య ఉంటుంది?
Answer:
11. ముందుగా 2 * 3 = 6, తరువాత 5 + 6 = 11.
const value = (5 + 2) * 3; తరువాత value లో ఏ సంఖ్య ఉంటుంది?
Answer:
21. Parentheses కారణంగా ముందుగా 5 + 2 = 7, తరువాత 7 * 3 = 21.
JavaScript arithmetic expression లో calculation order ను స్పష్టంగా చూపించడానికి ఏ symbol ఉపయోగిస్తారు?
Answer:
Parentheses symbols () ఉపయోగిస్తారు.
const value = 18 / 3 + 2; expression result ఏమిటి?
Answer:
8. ముందుగా 18 / 3 = 6, తరువాత 6 + 2 = 8.
Quick Revision
-
Operator precedence operators execute అయ్యే priority order.
-
Parentheses () లోని expression ముందుగా evaluate అవుతుంది.
-
Multiplication, division మరియు remainder సాధారణంగా addition, subtraction కంటే ముందుగా execute అవుతాయి.
-
ఒకే precedence ఉన్న arithmetic operators సాధారణంగా left-to-right order లో evaluate అవుతాయి.
-
+ operator strings తో concatenation చేయవచ్చు; –, *, / values ను number గా convert చేయవచ్చు.
-
Complex expressions లో parentheses ఉపయోగించడం readability మరియు accuracy కోసం మంచి practice.
