Ответ 1
Удалить переменную в JavaScript:
Резюме:
Причина, по которой вам не удается удалить вашу переменную в JavaScript, заключается в том, что JavaScript не позволит вам. Вы не можете удалить что-либо, созданное командой var
, если мы не вытащим кролика из нашей сумки трюков.
Команда delete предназначена только для свойств объекта, которые не были созданы с помощью var.
JavaScript позволит вам удалить переменную, созданную с помощью var при следующих условиях:
-
Вы используете интерпретатор javascript или командную строку.
-
Вы используете eval, и вы создаете и удаляете свой var внутри.
Демо на терминале, используйте команду delete boo
или delete(boo)
. Демонстрация с терминалом командной строки js
позволяет удалить переменную.
[email protected] ~ $ js
js> typeof boo
"undefined"
js> boo
typein:2: ReferenceError: boo is not defined
js> boo=5
5
js> typeof boo
"number"
js> delete(boo)
true
js> typeof boo
"undefined"
js> boo
typein:7: ReferenceError: boo is not defined
Если вы ДОЛЖНЫ установить свою переменную в undefined в JavaScript, у вас есть один вариант:
Демо на странице javascript: поместите это в myjs.html
:
<html>
<body>
<script type="text/JavaScript">
document.write("aliens: " + aliens + "<br>");
document.write("typeof aliens: " + (typeof aliens) + "<br>");
var aliens = "scramble the nimitz";
document.write("found some aliens: " + (typeof aliens) + "<br>");
document.write("not sayings its aliens but... " + aliens + "<br>");
aliens = undefined;
document.write("aliens set to undefined<br>");
document.write("typeof aliens: " + (typeof aliens) + "<br>");
document.write("you sure they are gone? " + aliens);
</script>
</body>
</html>
Откройте myjs.html с помощью браузера, он напечатает это:
aliens: undefined
typeof aliens: undefined
found some aliens: string
not sayings its aliens but... scramble the nimitz
aliens set to undefined
typeof aliens: undefined
you sure they are gone? undefined
Предупреждение. Когда вы устанавливаете переменную в undefined
, вы назначаете переменную другой переменной. Если кто-то отравляет колодец, запустив undefined = 'gotcha!'
, тогда всякий раз, когда вы устанавливаете переменную в undefined, она становится: "gotcha!".
Как проверить, не имеет ли переменная значение?
Используйте значение null вместо undefined следующим образом:
document.write("skittles: " + skittles + "<br>");
document.write("typeof skittles: " + (typeof skittles) + "<br>");
var skittles = 5;
document.write("skittles: " + skittles + "<br>");
document.write("typeof skittles:" + typeof skittles + "<br>");
skittles = null;
document.write("skittles: " + skittles + "<br>");
document.write("typeof skittles: " + typeof skittles);
Какие принты:
skittles: undefined
typeof skittles: undefined
skittles: 5
typeof skittles:number
skittles: null
typeof skittles: object
Если вы не используете strict, вы можете удалить переменные, созданные следующим образом:
<script type="text/JavaScript">
//use strict
a = 5;
document.writeln(typeof a); //prints number
delete a;
document.writeln(typeof a); //prints undefined
</script>
но если вы раскомментируете use strict
, javascript не будет работать.