В чем разница между var, let и const в JavaScript?
Стандарт ECMAScript представил новые функции языка программирования JavaScript, такие как «let» и «const».
var,let и const — это ключевые слова для объявления переменных в JavaScript. Давайте посмотрим один за другим,
var:ключевое слово var используется для объявления переменной в JavaScript, эти объявления обрабатываются перед выполнением кода.
Если переменная объявлена внутри функции или метода, то мы можем сказать, что «область действия переменной находится внутри функции».
Eg:
function testmyvar(){ var i = 10; // assigning 10 to the var i console.log(i); } console.log(i);// here you cannot access the variable i. You will see the error :Uncaught ReferenceError: i is not defined
В то же время вы можете использовать глобально объявленную переменную в своей функции и повторно объявить ее.
если вы измените значение глобально объявленной переменной в своей функции, это повлияет на глобально объявленную переменную.
Eg:
var a = 10; // value of a is 10, globally declared if(a==10){ var a = 20; // The value of a is changed to 20 console.log('Theue of a inside this scope is '+a); } console.log('Thebal variable value changed to '+a);
В целом мы узнали, что ключевое слово var используется для объявления переменной в JavaScript. Переменная var, объявленная как глобальная, может быть изменена внутри функции.
Повторное объявление одной и той же переменной в той же области допустимо с ключевым словом var.
Eg:1
function redeclaretestwithvar(){ var a =1; var a =2; console.log(a); //will show you 2 } Eg:2 var a = 10; // value of a is 10, globally declared var a = 5; if(a==10){ var a = 20; // The value of a is changed to 20 console.log('Theue of a inside this scope is '+a); } console.log(a)// will show you 5;
Давайте перейдем к ключевому слову let.
Поскольку мы использовали var, let также полезен для объявления переменной в области блока. Глобально назначенное значение не может быть изменено.
Eg:
function testLetFunction(){ let a =10; console.log(a); // show you 10 if(a==10){ let a=20; console.log(a); // show you 20 } console.log(a); // show you 10 }
Как видно из приведенного выше примера, значение, присвоенное переменной a ключевым словом let, находится в области действия блока.
значение изменилось только внутри блока if(). После блока if() значение объявленного в области действия функции остается неизменным.
Повторное объявление одной и той же переменной в той же области недопустимо с ключевым словом let, оно вызовет Uncaught SyntaxError.
function redeclareTestwithLet(){ let a =5; let a =10; //Identifier 'a' has already been declared console.log(a); }
Const: Const аналогичен let, за исключением того, что const не позволяет изменять его значение.
Например:
const MY_CONST = 10; function testConstFunctions(); const MY_CONST = 20; console.log("insidetion "+MY_CONST); //output 20 } console.log("Globale"+MY_CONST);// output 10
Как видно из приведенного выше примера, константа объявляет переменную в локальной области блока.
Повторное объявление константы в той же области блока вызовет ошибку.
Например:
const MY_CONST = 10; const MY_CONST = 20; // error :uncaught SyntaxError: Identifier 'MY_CONST' has already been declared function testConstFunctions(); const MY_CONST = 20; console.log("insidetion "+MY_CONST); //output 20 const MY_CONST = 25; //uncaught SyntaxError: Identifier 'MY_CONST' has already been declared }
Константные переменные изменить нельзя, но константные объекты можно изменить
JavaScript позволяет вам изменить константный объект, вы можете изменить свойства объекта, вы можете добавить новое свойство к константному объекту, Но вы не можете переназначить объект.
Eg:
//Declare a const object const student = {name:"Madan", Age:"25", class:"computer-Science"}; console.log(student); //modify this object by adding a new property student.gender="Male"; console.log(student); // object will includes gender // Modify the value of any property of the same object student.name="Madanagouda console.log(student);// object name is changed
Но
student = {name:"Girish", Age:"25", class:"Electronics"}; // Uncaught TypeError: Assignment to constant variable.
Точно так же массивы const можно изменить, но нельзя переназначить
//Declare a const array const planets = ["Mercury", "Venus", "Earth", "Mars","Ceres","Jupiter", "Saturn","Uranus","Neptune","Pluto"]; console.log(planets); //add a new value to this const array planets.push="Ceres console.log(planets); // array will includes Ceres // Modify the existing array value planets[10]="Haumea"; console.log(planets);// Array values changed planets.pop();// removed last element from your const array planets = ["Pluto", "Ceres", "Haumea", "Makemake","Eris"];// Uncaught TypeError: Assignment to constant variable.
Спасибо, что прочитали эту статью.
счастливое кодирование.. ;