这让我大吃一惊:
@keyframes scale {
0% {
transform: scale(0); border: 1px solid;
}
100% {
transform: scale(5); border: 5px solid;
}
}
div#scale {
width: 10px;
height: 10px;
border-radius: 50%;
animation: scale 5s infinite;
}
我总是认为每当你声明局部变量时,之前声明的任何具有相同名称的东西都会隐藏在它后面。为什么function f(x) {
var x;
console.log(x); // prints 100!
}
f(100);
不会像以前那样使var x
x
成为其他情况?
与此代码比较,其行为与以往一样:
undefined
答案 0 :(得分:2)
var
和参数都在同一函数范围内声明相同的变量x
。创建变量后,它将初始化为undefined
,并在分配了作为参数传递的值100
后不久。
答案 1 :(得分:0)
来自MDN#var:
<强>描述强>
...如果你重新声明一个JavaScript变量,它就不会失去它的价值。
在第一个示例中,由于x
已在函数f
中声明(作为参数),因此在同一函数内重新声明它(使用var
)将保持相同的值在重新声明之前x
(在调用时为f
提供的参数)。
在第二个示例中,x
在函数f
中声明。因此,当查找x
的值以传递给log
时,我们会在x
内使用f
(而不是外部的undefined
,因为我们没有#&# 39; t显式给它一个值(初始化它),它的值将是function show_best_matches(sequence_id, version_id) {
jQuery.ajax({
type: "GET",
url: 'https://unite.ut.ee/show_best_matches.php',
data:{
sequence_id: sequence_id,
version_id: version_id,
},
success:function(html) {
document.getElementById("best_matches").innerHTML = html;
}
});
}
。