计算三角形面积 - 作为 vars 但不作为函数包装

Count triangle area - working as vars but not wrapped as a function

一个菜鸟问题。我正在玩 http://www.w3resource.com/javascript-exercises/javascript-basic-exercises.php#EDITOR javascript 练习。练习题 4. 计算三角形的面积。

为什么这有效:

var a = 5;
var b = 6;
var c = 7;
var p = (a+b+c) / 2;
var p1 = (p * (p-a)*(p-b)*(p-c));
var poleA = Math.sqrt(p1);
console.log(poleA);

而这并没有(控制台给出错误):

function () {
var a = 5;
var b = 6;
var c = 7;
var p = (a+b+c) / 2;
var p1 = (p * (p-a)*(p-b)*(p-c));
var poleA = Math.sqrt(p1);
}
console.log(poleA);

可能是因为 poleA 是在函数内部声明的(在第二种情况下)并且它不存在于 window 命名空间中。

尝试从 poleA 中删除 var,这样它将成为一个全局变量,从而可以在方法范围之外访问。