У меня есть объект класса, который, как я думал, работал прошлой ночью. Но теперь я пытаюсь проверить свой метод set Hash, поэтому я делаю: blah = new HashTable; и он говорит, что HashTable не определен.
У меня есть другой файл, который здесь не связан, и все его переменные также отображаются как неопределенные (в консоли). Клянусь, у меня это сработало прошлой ночью, так что я рассержен.
Я получаю сообщение об ошибке, которое, возможно, я не замечал раньше, но оно говорит
ОШИБКА: ошибка синтаксического анализа: ключевое слово "класс" зарезервировано class HashTable
JSLint(2) Ожидал идентификатор и вместо этого видел "класс". Остановка. (4% просмотрено).
Что я делаю не так? Кто-нибудь, пожалуйста, помогите.
Мое желание - просто проверить мой код javascript в консоли, чтобы убедиться, что все работает. Я попробовал фрагмент Google Chrome, и в нем есть ошибки. Я попробовал codepen, и это песочница, поэтому он не работает должным образом в консоли, теперь я пробую скобки, и он также не позволяет мне тестировать в консоли. Становится так расстроен.
class HashTable {
constructor(size){
this.keyMap = new Array(size);
}
function _hash(key) {
let total = 0;
let prime = 31
for (let i = 0; i < Math.min(key.length, 100); i++) {
let char = key[i];
let value = char.charCodeAt(0) - 96;
total = (total * prime + value) % this.keyMap;
}
return total;
}
function set(key){
hashNumber = this._hash(key);
return hashNumber;
}
}
-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src = "app.js"></script>
<script src = "hash.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Please work</h1>
</body>
</html>
class
, он устарел. Начиная с ES2015,class
не просто зарезервировано, оно используется — для того, для чего вы пытаетесь его использовать. Похоже, вам нужно обновить свои инструменты, я уверен, что текущая версия JSLint (например) понимает синтаксисclass
. - person T.J. Crowder   schedule 22.09.2019