javaScript定义函数的三种方式变量的作用域

一.函数定义

方式1.普通方式定义函数

function 函数名(参数n){

函数体

}function add(a,b){return a+b;}方式2.直接量定义函数

var 函数名=function(参数n){

函数体

}

var add=function(a,b){return a+b;}方式三.构造方式定义函数

var 函数名=new Function(参数n,函数体);var add = new Function('a,b','return a+b;');二.变量的作用域:

全局变量:全局域和函数域

局部变量:局部函数域内

<script type="text/javascript">var a="a";function fn(){var b="b";alert(a);alert(b);}fn();alert(a);alelrt(b);</script>打印结果:a,b,a我们发现最后一个alert(b)没有打印这是因为b定义在函数体内只能在函数体内使用特殊的作用域

<script type="text/javascript">var a="a";function fn(){alert(a);var a="b";alert(a);}alert(a);</script>运行结果:

undefined,b,a

代码解释:

* 解读一下代码:* * 定义一个全局变量a,并初始化为"a".* * 定义一个函数fn(),但是没有调用(说明函数内容的代码不执行).* * 定义局部变量a,但不初始化.* * 到以上代码为止,当前环境中具有几个变量?* * 全局变量a,值为"a".* * 局部变量a,但没值.* * 当调用函数fn()时:* * 打印变量a:就近原则* * 局部变量a,没值:结果为undefined.* * 打印变量a,局部变量a.* * 在全局域中打印变量a:全局变量a.** 结论:* * javascript一次性定义代码段中所有的变量,但不初始化.* * javascript中当执行到对应语句时,初始化变量.* * * 当全局变量与局部变量同名时:* * 在函数域中,只能访问到局部变量a.

版权声明:本文为博主原创文章,,未经博主允许不得转载。

一个人目睹沿途的风景,拿着相机,拍下沿途上的风景,

javaScript定义函数的三种方式变量的作用域

相关文章:

你感兴趣的文章:

标签云: