జావాస్క్రిప్ట్ లెట్
- ముందస్తు పేజీ JS వేరియబుల్
- తరువాత పేజీ JS కాంస్ట్
ECMAScript 2015
ES2015 లో రెండు ముఖ్యమైన జావాస్క్రిప్ట్ కీలకాలు ప్రవేశపెట్టబడ్డాయి:let
మరియు const
.
ఈ రెండు కీలకాలు జావాస్క్రిప్ట్ లో బ్లాక్ స్కోప్ (Block Scope) వారియబుల్స్ (మరియు కన్స్టంట్స్).
ES2015 ముందు జావాస్క్రిప్ట్ లో వారియబుల్స్ (మరియు కన్స్టంట్స్) రెండు రకాల యొక్క స్కోప్ కలిగి ఉంది:గ్లౌబల్ స్కోప్మరియుఫంక్షన్ స్కోప్.
గ్లౌబల్ స్కోప్
గ్లౌబల్ఫంక్షన్ బాహ్యంలో ప్రకటించబడిన వారియబుల్స్ కొనియిచ్చుతుంది.గ్లౌబల్ స్కోప్.
ఇన్స్టాన్స్
var carName = "porsche"; // ఈ కోడ్ లో carName ఉపయోగించవచ్చు function myFunction() { // ఈ కోడ్ లో carName ఉపయోగించబడవచ్చు }
గ్లౌబల్వారియబుల్స్ జావాస్క్రిప్ట్ ప్రోగ్రామ్ యొక్క ఏ స్థానంలోనైనా పరిశీలించబడవచ్చు.
ఫంక్షన్ స్కోప్
స్థానికఫంక్షన్ లో ప్రకటించబడిన వారియబుల్స్ కొనియిచ్చుతుంది.ఫంక్షన్ స్కోప్.
ఇన్స్టాన్స్
// ఈ కోడ్ లో carName ఉపయోగించబడదు function myFunction() { var carName = "porsche"; // code here CAN use carName } // ఈ కోడ్ లో carName ఉపయోగించబడదు
స్థానికవారియబుల్స్ వారి ప్రకటన ఫంక్షన్లోనే పరిశీలించబడతాయి.
జావాస్క్రిప్ట్ బ్లాక్ స్కోప్
ద్వారా var
కీలక విభాగం ప్రకటించబడిన వారియబుల్స్ బ్లాక్ కాదుస్కోప్.
బ్లాక్ లో {} బ్లాక్ లో ప్రకటించబడిన వారియబుల్స్ బ్లాక్ పెరిఫెరీ నుండి పరిశీలించబడవచ్చు.
ఇన్స్టాన్స్
{ var x = 10; } // ఇక్కడ x ఉపయోగించవచ్చు
ES2015 ముందు జావాస్క్రిప్ట్ బ్లాక్ స్కోప్ కలిగి లేదు.
ఉపయోగించవచ్చు let
కీలక విభాగం బ్లాక్ స్కోప్ వారియబుల్స్ కొనియిచ్చుతుంది.
బ్లాక్ లో {} బ్లాక్ లో ప్రకటించబడిన వారియబుల్స్ బ్లాక్ పెరిఫెరీ నుండి పరిశీలించబడదు:
ఇన్స్టాన్స్
{ let x = 10; } // ఇక్కడ x ఉపయోగించబడదు
వారియబుల్స్ పునఃప్రకటన
ఉపయోగించండి var
కీలక వారియబుల్స్ పునఃప్రకటన సమస్య తీసుకువస్తుంది.
బ్లాక్ లో మరలా వారియబుల్స్ పునఃప్రకటన బ్లాక్ పెరిఫెరీ వారియబుల్స్ పునఃప్రకటన చేస్తుంది:
ఇన్స్టాన్స్
var x = 10; // ఇక్కడ x అనేది 10 { var x = 6; // ఇక్కడ x అనేది 6 } // ఇక్కడ x అనేది 6
ఉపయోగించండి let
కీలక వారియబుల్స్ పునఃప్రకటన ఈ సమస్యను పరిష్కరించవచ్చు.
బ్లాక్ లో మరలా వారియబుల్స్ పునఃప్రకటన బ్లాక్ పెరిఫెరీ వారియబుల్స్ పునఃప్రకటన చేయదు:
ఇన్స్టాన్స్
var x = 10; // ఇక్కడ x అనేది 10 { let x = 6; // ఇక్కడ x అనేది 6 } // ఇక్కడ x అనేది 10
బ్రౌజర్ మద్దతు
Internet Explorer 11 లేదా అది ముంది వెర్షన్లు పూర్తిగా మద్దతు ఇవ్వలేదు let
కీలక విభాగం.
ఈ పట్టిక మొదటి పూర్తిగా మద్దతు ఇచ్చే let
కీలక విభాగం బ్రౌజర్ వెర్షన్:
Chrome 49 | IE / Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
2016 మార్చి | 2015 జూలై | 2015 జనవరి | 2017 సెప్టెంబర్ | 2016 మార్చి |
లూప్ స్కోప్
లూప్ లో ఉపయోగించండి var
:
ఇన్స్టాన్స్
var i = 7; for (var i = 0; i < 10; i++) { // కొన్ని వాక్యాలు } // ఇక్కడ i సంఖ్య 10 గా ఉంది
లూప్ లో ఉపయోగించండి let
:
ఇన్స్టాన్స్
let i = 7; for (let i = 0; i < 10; i++) { // కొన్ని వాక్యాలు } // ఇక్కడ i సంఖ్య 7 గా ఉంది
మొదటి ఉదాహరణలో, లూప్ లో ఉపయోగించబడిన వేరియబుల్స్ ఉపయోగించబడినప్పుడు var
లూప్ బాహ్యంలో వేరియబుల్స్ పునఃప్రకటించబడింది.
రెండవ ఉదాహరణలో, లూప్ లో ఉపయోగించబడిన వేరియబుల్స్ ఉపయోగించబడినప్పుడు let
లూప్ బాహ్యంలో వేరియబుల్స్ పునఃప్రకటించబడలేదు.
లూప్ లో వేరియబుల్స్ ఉపయోగించినప్పుడు let
వేరియబుల్ i ని ప్రకటించినప్పుడు, వేరియబుల్ i కేవలం లూప్ లో కనిపిస్తుంది.
ఫంక్షన్ స్కోప్
ఫంక్షన్ లో వ్యాఖ్యలు చేయడం వద్ద ఉపయోగించండి var
మరియు let
మరియు వాటికి చాలా వరుసగా ఉన్నది.
వాటిలో అన్నింటికీ ఉన్నదిఫంక్షన్ స్కోప్:
function myFunction() { var carName = "porsche"; // ఫంక్షన్ స్కోప్ } function myFunction() { let carName = "porsche"; // ఫంక్షన్ స్కోప్ }
గ్లౌబల్ స్కోప్
బ్లాక్ బాహ్యంలో ప్రకటించినప్పుడు అప్పుడు var
మరియు let
మరియు వాటికి చాలా వరుసగా ఉన్నది.
వాటిలో అన్నింటికీ ఉన్నదిగ్లౌబల్ స్కోప్:
var x = 10; // గ్లౌబల్ స్కోప్ let y = 6; // గ్లౌబల్ స్కోప్
హ్ట్మ్ల్ లో గ్లౌబల్ వేరియబుల్స్
జావాస్క్రిప్ట్ ఉపయోగించినప్పుడు, గ్లౌబల్ స్కోప్ జావాస్క్రిప్ట్ ఎన్విరాన్మెంట్ ఉంది.
హ్ట్మ్ల్ లో, గ్లౌబల్ స్కోప్ విండో ఆబ్జెక్ట్ ఉంది.
ద్వారా var
కీలకపదం నిర్వచించబడిన గ్లౌబల్ వేరియబుల్స్ విండో ఆబ్జెక్ట్ కు చెందుతాయి:
ఇన్స్టాన్స్
var carName = "porsche"; // ఈ కోడు విండో కార్నేమ్ ని ఉపయోగించవచ్చు
ద్వారా let
కీలకపదం నిర్వచించబడిన గ్లౌబల్ వేరియబుల్స్ విండో ఆబ్జెక్ట్ కు చెందకుండా ఉంటాయి:
ఇన్స్టాన్స్
let carName = "porsche"; // ఈ కోడు విండో కార్నేమ్ ని ఉపయోగించలేదు
పునఃప్రకటించండి
ప్రోగ్రామ్ యొక్క ఏ స్థానంలోనైనా ఉపయోగించవచ్చు var
జావాస్క్రిప్టు వ్యవస్థాపక వ్యాఖ్యలు పునఃప్రకటించండి:
ఇన్స్టాన్స్
var x = 10; // ఇప్పుడు x సంఖ్య 10 గా ఉంది var x = 6; // ఇప్పుడు x సంఖ్య 6 గా ఉంది
在相同的作用域,或在相同的块中,通过 let
重新声明一个 var
变量是不允许的:
ఇన్స్టాన్స్
var x = 10; // అనుమతించబడింది let x = 6; // నిషేధించబడింది { var x = 10; // అనుమతించబడింది let x = 6; // నిషేధించబడింది }
在相同的作用域,或在相同的块中,通过 let
重新声明一个 let
变量是不允许的:
ఇన్స్టాన్స్
let x = 10; // 允许 let x = 6; // నిషేధించబడింది { let x = 10; // 允许 let x = 6; // నిషేధించబడింది }
在相同的作用域,或在相同的块中,通过 var
重新声明一个 let
变量是不允许的:
ఇన్స్టాన్స్
let x = 10; // 允许 var x = 6; // 不允许 { let x = 10; // 允许 var x = 6; // 不允许 }
在不同的作用域或块中,通过 let
重新声明变量是允许的:
ఇన్స్టాన్స్
let x = 6; // 允许 { let x = 7; // 允许 } { let x = 8; // 允许 }
提升
ద్వారా var
声明的变量会提升到顶端。如果您不了解什么是提升(Hoisting),请学习我们的提升这一章。
వేరియబుల్స్ ప్రకటించడానికి ముందు ఉపయోగించవచ్చు:
ఇన్స్టాన్స్
// ఇక్కడ, మీరు carName ను ఉపయోగించవచ్చు var carName;
ద్వారా let
ప్రకటించబడిన వేరియబుల్స్ టాప్ నిలకడగా పెరిగిపోలేదు.
లో ప్రకటించబడింది let
వేరియబుల్స్ ముందు ఉపయోగించడం ద్వారా ReferenceError ఉంటుంది.
వేరియబుల్స్ బ్లాక్ ప్రారంభం నుండి 'తాత్కాలిక మరణం' వరకు ఉన్నాయి:
ఇన్స్టాన్స్
// ఇక్కడ, మీరు carName ను ఉపయోగించలేరు let carName;
- ముందస్తు పేజీ JS వేరియబుల్
- తరువాత పేజీ JS కాంస్ట్