Javascript函数没有访问全局作用域?

Javascript函数没有访问全局作用域?,javascript,function,Javascript,Function,我想创建一个简单的输入字段,它接受输入的值来计算三角形的面积,我注意到我的函数中有一些东西。 我注意到由于某种原因,我的函数无法访问在全局范围内创建的变量。像这样: <!DOCTYPE html> <html> <head> <title></title> </head> <body> input 1: <input type="input" placeholder="Side a" id="si

我想创建一个简单的输入字段,它接受输入的值来计算三角形的面积,我注意到我的函数中有一些东西。 我注意到由于某种原因,我的函数无法访问在全局范围内创建的变量。像这样:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

input 1: <input type="input" placeholder="Side a" id="sideA"> <br>
input 2: <input type="input" placeholder="Side b"  id="sideB"><br>
input 3: <input type="input" placeholder="Side c" id="sideC"><br>
<button onclick=" AreaResults()"> Calculate</button>

<p id="P_result">

    The area of the triangle is:
</p>
<script >

var side_a = document.getElementById("sideA").value;
     var side_b = document.getElementById("sideB").value;
     var side_c = document.getElementById("sideC").value;

var Allsides = side_c + side_b + side_a;
var perimeter = Allsides/2;
var area = Math.sqrt(( perimeter*(perimeter-side_a)*(perimeter-side_b)*(perimeter-side_c)));


function AreaResults(){


    var resultsInput = document.getElementById("P_result");
    resultsInput.append(area);

}



</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

input 1: <input type="input" placeholder="Side a" id="sideA"> <br>
input 2: <input type="input" placeholder="Side b"  id="sideB"><br>
input 3: <input type="input" placeholder="Side c" id="sideC"><br>
<button onclick=" AreaResults()"> Calculate</button>

<p id="P_result">

    The area of the triangle is:
</p>
<script >



function AreaResults(){

var side_a = document.getElementById("sideA").value;
     var side_b = document.getElementById("sideB").value;
     var side_c = document.getElementById("sideC").value;

var Allsides = side_c + side_b + side_a;
var perimeter = Allsides/2;
var area = Math.sqrt(( perimeter*(perimeter-side_a)*(perimeter-side_b)*(perimeter-side_c)));


    var resultsInput = document.getElementById("P_result");
    resultsInput.append(area);

}



</script>
</body>
</html>

输入1:
输入2:
输入3:
算计

三角形的面积为:

var side_a=document.getElementById(“sideA”).value; var side_b=document.getElementById(“sideB”).value; var side_c=document.getElementById(“sideC”).value; var Allsides=c侧+b侧+a侧; var周长=所有侧面/2; var面积=数学sqrt((周长*(周长侧边_a)*(周长侧边_b)*(周长侧边_c)); 功能区结果(){ var resultinput=document.getElementById(“P_结果”); 结果输入。追加(面积); }
将它们移动到如下功能中后:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

input 1: <input type="input" placeholder="Side a" id="sideA"> <br>
input 2: <input type="input" placeholder="Side b"  id="sideB"><br>
input 3: <input type="input" placeholder="Side c" id="sideC"><br>
<button onclick=" AreaResults()"> Calculate</button>

<p id="P_result">

    The area of the triangle is:
</p>
<script >

var side_a = document.getElementById("sideA").value;
     var side_b = document.getElementById("sideB").value;
     var side_c = document.getElementById("sideC").value;

var Allsides = side_c + side_b + side_a;
var perimeter = Allsides/2;
var area = Math.sqrt(( perimeter*(perimeter-side_a)*(perimeter-side_b)*(perimeter-side_c)));


function AreaResults(){


    var resultsInput = document.getElementById("P_result");
    resultsInput.append(area);

}



</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

input 1: <input type="input" placeholder="Side a" id="sideA"> <br>
input 2: <input type="input" placeholder="Side b"  id="sideB"><br>
input 3: <input type="input" placeholder="Side c" id="sideC"><br>
<button onclick=" AreaResults()"> Calculate</button>

<p id="P_result">

    The area of the triangle is:
</p>
<script >



function AreaResults(){

var side_a = document.getElementById("sideA").value;
     var side_b = document.getElementById("sideB").value;
     var side_c = document.getElementById("sideC").value;

var Allsides = side_c + side_b + side_a;
var perimeter = Allsides/2;
var area = Math.sqrt(( perimeter*(perimeter-side_a)*(perimeter-side_b)*(perimeter-side_c)));


    var resultsInput = document.getElementById("P_result");
    resultsInput.append(area);

}



</script>
</body>
</html>

输入1:
输入2:
输入3:
算计

三角形的面积为:

功能区结果(){ var side_a=document.getElementById(“sideA”).value; var side_b=document.getElementById(“sideB”).value; var side_c=document.getElementById(“sideC”).value; var Allsides=c侧+b侧+a侧; var周长=所有侧面/2; var面积=数学sqrt((周长*(周长侧边_a)*(周长侧边_b)*(周长侧边_c)); var resultinput=document.getElementById(“P_结果”); 结果输入。追加(面积); }
一切正常。
我不明白,因为我认为函数可以访问全局范围内的所有变量

您正在访问变量


但是,您可以在用户键入任何内容之前(加载页面时)设置它们,因此它们是空的。

您可以访问变量


但是,在用户键入任何内容之前(加载页面时)设置它们,因此它们是空的。

您如何知道您无法访问它们?除非在函数中写入代码,否则代码不起作用。您如何知道您无法访问它们?除非在函数中写入代码,否则代码不起作用