js局部变量和全局变量
函数内部获取全局变量:
function test(){
y=5; //全局变量
alert(y); //函数执行内部定义的全局变量的值
}
test();
alert(y); //可以获取到全局变量的值
声明提前:
function test(){
document.write('函数体内x的值为:'+x+'<br/>'); // 声明提前 undefined,x值取下面的,但是取不到值 同级可以取到变量
var x=19;
document.write('函数体内对x重新赋值,此时x的值为:'+x+'<br/>'); //可以取到变量的值
}
function test(){
var x=1; //声明定义成为局部变量
alert(x);
}
test();
alert(x); //取不到变量,报错*/ 因为没有声明变量和赋值
例子:
var x=1,y=2; //声明xy
function calc(x,y){
document.write('a的值为'+a+'<br/>');//undefined 函数内能取到变量娶不到值
document.write('函数体内x的值为:'+x+'<br/>'); //1
document.write('函数体内y的值为:'+y+'<br/>'); //2
var x=0,y=6;
z=x+y;
x=x+y;
var a=198;
document.write('a的值为:'+a+'<br/>'); //198
document.write('x的值为:'+x+'<br/>'); //6
return z;
}
alert(calc(x,y)); //获取到变量的值,赋给行参 //重新赋值为x为0 y 为6
alert(x+'-'+y+'-'+z);//函数外部是全局变量 取得值为全局变量的值 z取得是函数内部的全局变量
回调函数:
回调函数的例子
function calc(x,y){
return x()+y();
}
function test1(){
return 3;
}
function test2(){
return 5;
}
alert(calc(test1,test2));
alert(calc(function(){return 5;},function(){return 10;}));//匿名函数不需要来起名称
function say (value) {
alert(value);
}
alert(say); //为say的内容
say('hi js.'); //一样的名称不需要alert,函数直接调用