<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
//1.javascript重载
function f1(){
alert('first f1');
}
function f1(name){
alert(name);
}
//原因是javascript中没有函数重载的概念,所以遇到同名函数时,会用最后一次函数定义覆盖前面的函数定义。
//f1();//调用函数弹出undefined
//2.arguments对象
function add(){
var sum = 0;
//遍历累加每个参数的值
for(var i = 0 ; i< arguments.length; i++){
sum+= arguments[i];
}
return sum;
}
var result = add(10,20,30,40,50);
//alert(result);
//3.函数预解析
var x = 1 , y = 0, z= 0;
function add3(n){ n= n+1;return n }
y = add3(x);
function add3(n){ n= n+3;return n }
z = add3(x);
//alert(y + '......' + z); // 打印4.....4并不是2.....4
//4.
var username = 'steve';
function f4(){
alert(username);
var username ='pan';
alert(username);
}
f4();
alert(username);
</script>
</head>
<body>
</body>
</html>
<!--
1.Javascript中函数不能重载
2.Javascript中没有函数重载,那么可以使用类似C#中可变参数来解决,在javascript中叫做arguments对象
并且所有的方法都无需定义形参, 定义形参的目的是为了使用方便.无论是否定义了形参,在实际调用中该函数时,所有的参数都包含在arguments对象中了
3.因为函数有 预解析 的功能,所以在JavaScript执行之前会将所有的函数先进行预解析。预解析的时候就会使用最后定义函数覆盖前面同名定义的函数。
4.在函数内部声明的变量在整个函数中都可以使用。如果遇到 局部变量 和 全局变量 冲突时,优先使用 局部变量。
变量 和 函数具有同样的 预解析功能, 在函数的一开始就会把所有使用的变量都声明好。
-->
Javascript函数和变量的预解析功能
猜你喜欢
转载自blog.csdn.net/qq_24432127/article/details/90731712
今日推荐
周排行