如何定义一个全局变量:
在 js 直接定义一个变量,而并不是在一个函数体内,他就是全局变量,
var num1; // 这是一个全局变量
num = 0;
var num1 = 0; // 这是一个全局变量
function myFn () {
num3 = 0; // 这也是一个全局变量
}
如何定义一个局部变量:
在 js 中的函数块内用 var 定义一个变量
function myFn () {
var num = 0; // 这是一个局部变量
num3 = 0; // 没有用 var,这是一个全局变量
}
变量的作用域:
全局可以在全局调用,局部变量可以在定义它的函数块内调用,大家都知道,不做举例了。
但如果变量局部变量和全局变量名字冲突,就会就近调用当前函数中定义的局部变量。
var num = 1;
function myFunction(){
var num = 0;
alert(num)
}
myFunction()// alert 弹出的就会是 0,不是 1
for(var i=0;i<10;i++){
var num = 0;
}
函数的定义:
//定义一个函数, 关键词 function
function myFunction(){
alert("这是一个函数体");
return 3+5;
}
var num = myFunction();
var num1 = myFunction;
// 会弹出几次窗口
函数的应用:
function makeCounter() {
var i = 0;
return function(){
return ++i;
}();
}
var num = makeCounter();
var num1 = makeCounter();
alert("num:"+num+" num1: "+num1);
函数在三目运算符中应用:
var needRandom = true; // 需要给文化随机数
alert(needRandom?myFn():-1);
function myFn(){
return parseInt(Math.random()*256)
}
var i = 2;
var j = 3;
i>j?
function(){
alert("条件为真")
}:
function(){
alert("条件为假")
};
用赋值表达式定义函数:
var myFn = function lala(){
alert("完成了调用")
};
lala(); // 能完成函数的调用吗?
答案是不能的,用赋值表达式把一个具名函数赋值给一个变量,就不可以在函数体外对函数进行调用用了
var myFn = function lala(){
alert("完成了调用")
};
myFn(); // 在函数外部,通过对变量的调用,才可以完成对函数的调用