如何定义一个全局变量:
在 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(); // 在函数外部,通过对变量的调用,才可以完成对函数的调用