<script>
function fn() {
//arguments为函数不定参数变量
var max = arguments[0];
for (var i = 1; i < arguments.length; i++){
if (max < arguments[i]){
max = arguments[i];
}
}
return max;
}
</script>
<script>
/*全局与局部*/
var num = 1; //全局,0级
function fn1() {
//1级
var num = 2; //局部,有var
function fn2() {
//var num = 3;
//2级
num = 3; //局部,当没有var修饰时,变量就是其上级最近var修饰的同名变量,作修改时也会修改同名变量的值
console.log(num);
}
fn2();
console.log(num);
}
fn1();
console.log(num);
</script>
<script>
/*
* var 会有预编译/预解析的效果
* 预编译/预解析:可以在var定义变量之前使用该变量,不会报错,结果时undefined。即等同于在之前进行var定义变量而没有初始化
* let 没有预编译
* let定义的变量名,只能在之后使用变量,否则报错。
* const 常量
* 常量声明时赋值,后面不能改变其值,否则报错。
* */
console.log(var1); //不报错
var var1 = 12;
/*let*/
console.log(var2); //报错
let var2 = 123;
/*const*/
const var3 = 1234;
var3 = 1; //报错
</script>