如果我尝试将s
声明为变量,则会出错。它的行为就像s
不是变量,实际上根本不喜欢任何语法更改。
实际上,我已经写了一个决策树网页,该网页非常依赖此概念,而且我不确定为什么它起作用。
<!DOCTYPE html>
<html>
<head>
<title>Class Tests</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" charset="UTF-8"/>
<script src=" jQuery3.2.1.js"></script>
<script src=" jQuery_UI.js"></script>
</head>
<script>
function selection(select){
s = select;
}
$(document).ready(function(){
$("button").click(function(){
alert("boop " + s);
});
});
</script>
<body>
<button onclick=selection('Genius')>Genius</button>
<button onclick=selection('System')>Systems</button>
<button onclick=selection('Personal')>Personal</button>
</body>
</html>
答案 0 :(得分:0)
不使用var关键字时未声明变量。它是在全局对象(即窗口)上创建的,因此它与声明的变量在不同的空间中操作。
答案 1 :(得分:0)
像这样设置s
:
function selection(select){
s = select;
}
与可变范围相似:
var s;
function selection(select) {
s = select;
}
因此s
作为window
的属性存在,并且在selection
函数内部和alert("boop " + s);
中都可用,因为window
是全局对象。但是,如果您在函数内使用var
声明并为变量赋值,则:
function selection(select) {
var s = select;
}
s
仅具有功能selection
的范围,并在此处进行检索:
alert("boop " + s);
导致错误,因为这里不存在错误。
答案 2 :(得分:0)
未使用关键字<root>
<child1 />
<child2><ChildInfo>
<Name>Something</Name>
<School>ElementarySchool</School>
<Age>7</Age>
</ChildInfo>
</child2>
</root>
分配的变量称为未声明。这些是在全局范围内创建的。因此,您的var
变量可在点击处理程序中使用。
现在,这仅在非严格模式下发生,因此,如果将s
指令放在选择函数的内部或上方,则会出现错误。
'use strict'