Подтвердить что ты не робот

Можете ли вы использовать постоянные переменные в javascript?

Я использую visual studio 2010 и создал javascript файл (jscript.js), и я увидел на одной странице сообщение о том, что вы можете создавать постоянные переменные в javascript, например:

const x = 20;

bu на другой странице, которую я читал, он говорит, что вы не можете. Итак, теперь я запутался, что теперь?

Также в Visual studio, когда я пишу "const", он подчеркивает его в файле javascript и выводит синтаксическую ошибку.

4b9b3361

Ответ 1

const - это предлагаемая функция ECMAScript Harmony (вместе с соответствующим блочным let предполагается заменить var и неявные глобалы). ECMAScript Harmony - это захватывающая идея для следующих версий ECMAScript.

const также был частью ECMAScript 4.

ECMAScript 4 никогда не выпускался и никогда не будет, и ECMAScript Harmony выйдет только через пару лет. Поэтому вы не можете надежно использовать его.

Существуют некоторые реализации или производные от ECMAScript, которые реализуют const (например, ActionScript). Существуют также некоторые реализации, которые принимают const как синоним для var (IOW, вы можете использовать const, но он не даст вам никакой защиты.)

Однако, если вы не можете абсолютно гарантировать, что ваш код будет работать только на очень специфических версиях очень специфических реализаций очень специфических производных ECMAScript, лучше избегать его. (Это настоящий позор, потому что const и особенно let являются огромным улучшением по сравнению с var и неявными глобалями.)

Ответ 2

если вы ищете переменную только для чтения, вы имитируете это с помощью чего-то вроде

var constants = new (function() {
    var x = 20;
    this.getX = function() { return x; };
})();

а затем используйте его как

constants.getX()

Ответ 3

Там нет const в ECMAScript (без учета мертвой версии 4.0 и ActionScript).

const доступен в JScript.NET, а некоторые последние версии JS-двигателей, например Firefox, Opera 9, Safari в качестве расширения для конкретного поставщика.

Ответ 4

Решение состоит в том, чтобы создать объект и поместить все его константы в объект:

const={};

const.x=20;

const.y=30;

Object.freeze(const);  // finally freeze the object

Использование:

var z=const.x + const.y;

Любая попытка изменить переменную вызовет ошибку:

const.x=100;  <== raises error

Ответ 5

Я верю, что есть что-то, что не с var, является глобальной переменной.... в js нет константы.

var a="test" отличается от a="test"

Ответ 6

JavaScript ES6 (повторно) ввел const ключевое слово, которое поддерживается в все основные браузеры.

Переменные, объявленные через const, не могут быть повторно объявлены или повторно назначены.

Кроме того, const ведет себя подобно let.

Он ведет себя как и ожидалось для примитивных типов данных (Boolean, Null, Undefined, Number, String, Symbol):

const x = 1;
x = 2;
console.log(x); // 1 ...as expected, re-assigning fails

Внимание: Помните о подводных камнях относительно объектов:

const o = {x: 1};
o = {x: 2};
console.log(o); // {x: 1} ...as expected, re-assigning fails

o.x = 2;
console.log(o); // {x: 2} !!! const does not make objects immutable!

const a = [];
a = [1];
console.log(a); // 1 ...as expected, re-assigning fails

a.push(1);
console.log(a); // [1] !!! const does not make objects immutable

Ответ 7

Нет, в JavaScript нет типа данных const.

JavaScript - это свободно типизированный язык. Каждый вид переменной объявляется с помощью var