Javascript 警报()未显示
我有一个简单的javascript练习问题,无法显示。我已经收到了其他警报,但我不知道如何正确地调用此警报。非常感谢您的任何帮助或建议Javascript 警报()未显示,javascript,Javascript,我有一个简单的javascript练习问题,无法显示。我已经收到了其他警报,但我不知道如何正确地调用此警报。非常感谢您的任何帮助或建议 <html> <body> <script> function multa(a, b) { return c; var a = 3; var b = 4; } alert(a * b + "is" + c); </
<html>
<body>
<script>
function multa(a, b) {
return c;
var a = 3;
var b = 4;
}
alert(a * b + "is" + c);
</script>
</body>
</html>
函数multa(a,b){
返回c;
var a=3;
var b=4;
}
警报(a*b+为“+c”);
如果要在函数外部访问变量,必须在外部作用域中声明它们
设a=3;
设b=2;
多功能(a、b){
返回a*b;
}
警报(多个(a、b));
函数multa(a,b){
var c=a*b;
返回c;
}
var a=3;
var b=4;
警报(a+“*”+b+“是”+multa(a,b));
在javascript中,变量声明的范围(一个变量可用多长时间的奇特术语)根据您用于声明变量的关键字(var
,let
,const
)而有所不同
为简单起见,let
和const
以类似的方式确定作用域,即它们在定义的块作用域内可用
例如:
for (let i = 0; i < 10; i++) {
console.log(i);
}
console.log(i); // this will give an error as `i` is available only within the for loop block
吊装后JS对该功能的“解释”如下:
function Test() {
var i // notice the declaration has moved to the top - which wasn't the case with `let` and `const`
console.log(i);
for (i = 0; i < 10; i++) {
console.log(i);
}
}
这将被解释为
function multa(a, b) {
var a; // declaration is hoisted
var b; // declaration is hoisted
return c;
a = 3;
b = 4;
}
alert(a * b + "is" + c);
现在,当JS尝试执行警报时,它找不到变量a
、b
和c
,因为它们的范围仅限于在其中声明的函数
所以你需要把这个改成
function multa(a, b) {
var a; // declaration is hoisted
var b; // declaration is hoisted
var c;
a = 3;
b = 4;
c = a * b
alert("a * b is" + c);
}
变化:
语句不是必需的return
- 需要一个变量
c
- “a*b”必须用引号括起来,否则你会得到一个警报“12是12”,因为JS将计算a*b
multa
函数的内部从未发生过,因为您从未调用过该函数,因此a
和b
从未设置过。非常感谢!这真的很有帮助!
function multa(a, b) {
var a; // declaration is hoisted
var b; // declaration is hoisted
return c;
a = 3;
b = 4;
}
alert(a * b + "is" + c);
function multa(a, b) {
var a; // declaration is hoisted
var b; // declaration is hoisted
var c;
a = 3;
b = 4;
c = a * b
alert("a * b is" + c);
}