学习任务
根据成绩,计算对应的绩点。
观看视频
视频1 | JavaScript函数 |
视频2 | 变量的作用域 |
视频概要
1.变量分为全局变量和局部变量,
全局变量可以在脚本的任何位置被引用, 包括函数的内部;
局部变量只存在于声明他的那个函数的内部。
2. 如果在某个函数中使用了var, 这个变量将被视为局部变量;
如果在函数中声明变量时没有使用var,这个变量将被视为一个全局变量,如果脚本中已经存在一个与之同名的全局变量,这个函数就会改变那个全局变量的值。例如:
<script>
function square(num){
total = num * num; // total未使用关键字var,是全局变量
return total;
}
var total = 50;
var area= square(20);
console.log(total); //total的值为400
</script>
我的本意是让square()函数只把它计算出来的面积返回给area,因为这个函数内部的total变量未明确的声明为局部变量,这个函数把名字同样是total地那个全局变量的值给改变了.
请记住,在定义一个函数的时候, 函数应该像一个自给自足的脚本,我们一定要把它内部的变量全都明确的声明为局部变量,这样就可以避免任何形式的二义性隐患。
3.let 和var
课件下载
参考代码
<body>
<button onclick='selectGrade()'>绩点查询</button>
<script type="text/javascript">
function selectGrade() {
var score = prompt("请输入您的成绩(0-100)");
var gradePoint;
while (isNaN(score) || (score > 100) || (score < 0)) {
score = prompt("成绩不合法,请重新输入");
}
if (score < 60) {
gradePoint = 0;
} else {
gradePoint = (score - 60)/ 10 1;
}
alert('您的绩点是' gradePoint);
}
</script>
</body>
补充说明
立即执行函数
用括号把函数括起来,后面的括号是用来传参的,这样函数无需调用,可以自己执行。
<script>
(function() {
document.write("Hello! 我是自己调用的");
})();
</script>