JavaScript కాంస్ట్

ECMAScript 2015

ES2015 కుడివారపు రెండు ముఖ్యమైన జావాస్క్రిప్ట్ కీర్విడ్జ్లను ప్రవేశపెట్టింది:let మరియు const.

ద్వారా const నిర్వచించబడిన వేరియబుల్స వంటి ఉన్నాయి, కానీ మళ్ళీ అప్పగించలేరు: let నిర్వచించబడిన వేరియబుల్స వంటి ఉన్నాయి, కానీ మళ్ళీ అప్పగించలేరు:

ఇన్స్టాన్స్

const PI = 3.141592653589793;
PI = 3.14;      // తప్పు కావచ్చు
PI = PI + 10;   // కూడా తప్పు కావచ్చు

మీరే ప్రయత్నించండి

బ్లాక్ రీజయం

లోబ్లాక్ రీజయంలోపల వాడబడిన వేరియబుల్స సమానం కాని ఉన్నాయి: const నిర్వచించబడిన వేరియబుల్స మరియు let నిర్వచించబడిన వేరియబుల్స మరియు లోపల వాడబడిన వేరియబుల్స సమానం కాని ఉన్నాయి:

వేరియబుల్స పోలిగా ఉన్నాయి.

ఇన్స్టాన్స్

ఈ ఉదాహరణలో, x బ్లాక్లో నిర్వచించబడింది, బ్లాక్ బాహ్యంలో నిర్వచించబడిన x నుండి వేరు:
// ఇక్కడ గా క్షీతిజ్ గా 6 ఉంటుంది
{ 
  var x = 10;
  const x = 6;
}
// ఇక్కడ గా క్షీతిజ్ గా 6 ఉంటుంది

మీరే ప్రయత్నించండి

// ఇక్కడ గా క్షీతిజ్ గా 10 ఉంటుంది JavaScript లెట్ మీరు ముందస్తు చాప్టర్లో బ్లాక్ రీజయం గురించి ఎక్కువ తెలుసుకోవచ్చు.

నిర్వచించటం సమయంలో అప్పగించండి

జావాస్క్రిప్ట్ const వేరియబుల్స్ నిర్వచించటం సమయంలో అప్పగించవలసి ఉంటుంది:

తప్పు

const PI;
PI = 3.14159265359;

సరైనది

const PI = 3.14159265359;

నిజమైన కన్స్టంట్ కాదు

కీర్విడ్జ్ const కొంత మోసగా ఉంటుంది.

ఇది కన్స్టంట్ విలువను నిర్వచించలేదు. ఇది విలువకు కన్స్టంట్ సూచకం నిర్వచించబడింది.

కాబట్టి, మీరు కన్స్టంట్ ప్రారంభ విలువను మార్చలేరు, కానీ మీరు కన్స్టంట్ ఆబ్జెక్ట్ అనునది మార్చవచ్చు.

ప్రారంభ విలువ

మీరు ఒక ప్రారంభ విలువను కన్స్టంట్కు అప్పగించినప్పుడు, మీరు ప్రారంభ విలువను మార్చలేరు:

ఇన్స్టాన్స్

const PI = 3.141592653589793;
PI = 3.14;      // తప్పు కావచ్చు
PI = PI + 10;   // కూడా తప్పు కావచ్చు

మీరే ప్రయత్నించండి

కన్స్టంట్ ఆబ్జెక్ట్ మార్చవచ్చు:

మీరు కన్స్టంట్ ఆబ్జెక్ట్ అనునది మార్చవచ్చు అంశాలు:

ఇన్స్టాన్స్

// మీరు const ఆబ్జెక్ట్స్ సృష్టించవచ్చు:
const car = {type:"porsche", model:"911", color:"Black"};
// మీరు అనునది మార్చవచ్చు అంశాలు:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";

మీరే ప్రయత్నించండి

但是您无法重新为常量对象赋值:

ఇన్స్టాన్స్

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR

మీరే ప్రయత్నించండి

常量数组可以更改

您可以更改常量数组的元素:

ఇన్స్టాన్స్

// 您可以创建常量数组:
const cars = ["Audi", "BMW", "porsche"];
// 您可以更改元素:
cars[0] = "Honda";
// 您可以添加元素:
cars.push("Volvo");

మీరే ప్రయత్నించండి

但是您无法重新为常量数组赋值:

ఇన్స్టాన్స్

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // ERROR

మీరే ప్రయత్నించండి

బ్రౌజర్ మద్దతు

Internet Explorer 10 లేదా అంతకు ముంది వెర్షన్స్ లేదు మద్దతు ఇస్తాయి const కీలకపదం。

ఈ పట్టిక మొదటి పూర్తిగా const కీలకపదాన్ని మద్దతు ఇస్తున్న బ్రౌజర్ వెర్షన్స్ ని నిర్వచిస్తుంది:

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
2016 సంవత్సరం 3 నెల 2013 సంవత్సరం 10 నెల 2015 సంవత్సరం 2 నెల 2016 సంవత్సరం 9 నెల 2016 సంవత్సరం 3 నెల

重新声明

在程序中的任何位置都允许重新声明 JavaScript var 变量:

ఇన్స్టాన్స్

var x = 2;    // అనుమతించబడుతుంది
var x = 3;    // అనుమతించబడుతుంది
x = 4;        // అనుమతించబడుతుంది

在同一作用域或块中,不允许将已有的 var లేదా let 变量重新声明或重新赋值给 const:

ఇన్స్టాన్స్

var x = 2;         // అనుమతించబడుతుంది
const x = 2;       // అనుమతించబడదు
{
  let x = 2;     // అనుమతించబడుతుంది
  const x = 2;   // అనుమతించబడదు
}

在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:

ఇన్స్టాన్స్

const x = 2;       // 允许
const x = 3;       // అనుమతించబడదు
x = 3;             // అనుమతించబడదు
var x = 3;         // అనుమతించబడదు
let x = 3;         // అనుమతించబడదు
{
  const x = 2;   // 允许
  const x = 3;   // 不允许
  x = 3;         // 不允许
  var x = 3;     // 不允许
  let x = 3;     // 不允许
}

在另外的作用域或块中重新声明 const 是允许的:

ఇన్స్టాన్స్

const x = 2;       // 允许
{
  const x = 3;   // 允许
}
{
  const x = 4;   // 允许
}

提升

ద్వారా var 定义的变量会被提升అప్రమాణికంగా పెరిగిపోవడం (Hoisting) ఏమిటనే అని తెలియకపోతే, ఈ చాప్టర్ ను నేర్చుకోండి.

మీరు var వ్యవస్థాపకాన్ని నిర్వచించడానికి ముందు ఉపయోగించవచ్చు:

ఇన్స్టాన్స్

carName = "Volvo";    // ఇక్కడ కార్నేమ్ ను ఉపయోగించవచ్చు
var carName;

మీరే ప్రయత్నించండి

ద్వారా const నిర్వచించబడిన వ్యవస్థాపకం పైకి అప్రమాణికంగా పెరిగిపోని ఉంటాయి.

const వ్యవస్థాపకం ముందు వారిని ఉపయోగించలేరు:

ఇన్స్టాన్స్

carName = "Volvo";    // ఇక్కడ కార్నేమ్ ను ఉపయోగించలేరు
const carName = "Volvo";