javascript的函数作用域,javascript函数作用域学习示

2019-07-25 作者:网站首页   |   浏览(180)

在一些类似c语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明他们的代码段之外是不可见的,我们称为块级作用域(block scope),而javascript中没有块级作用域。取而代之的javascript使用的是函数作用域(function scope):变量在声明它的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 在如下代码中,在不同位置定义的i,j和k,他们再同一个作用域内都是有定义的

在一些类似c语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明他们的代码段之外是不可见的,我们称为块级作用域(block scope),而javascript中没有块级作用域。取而代之的javascript使用的是函数作用域(function scope):变量在声明它的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 在如下代码中,在不同位置定义的i,j和k,他们再同一个作用域内都是有定义的

复制代码 代码如下:

复制代码 代码如下:

function text(o)  
{  
    var i=0;  
    alert(typeof o);  
    if(typeof o == "string")  
    {  
        var j=0;  
        for(var k=0;k<10;k )  
        {  
            alert(k);//输出0-9  
        }  
        alert(k);//输出10  
    }  
    alert(j);//输出0  
}  

function text(o)  
{  
    var i=0;  
    alert(typeof o);  
    if(typeof o == "string")  
    {  
        var j=0;  
        for(var k=0;k<10;k )  
        {  
            alert(k);//输出0-9  
        }  
        alert(k);//输出10  
    }  
    alert(j);//输出0  
}

  javascript的函数作用域指在函数内部声明的所有的变量在函数体内始终是可见的。有意思的是,这意味着变量在声明之前甚至已经可用。javascript的这个特性被非正式的称为声明提前(hoisting),即javascript的函数体内声明的所有的变量(不涉及赋值)都被“提前”至函数体的顶部。看以下代码

javascript的函数作用域指在函数内部声明的所有的变量在函数体内始终是可见的。有意思的是,这意味着变量在声明之前甚至已经可用。javascript的这个特性被非正式的称为声明提前(hoisting),即javascript的函数体内声明的所有的变量(不涉及赋值)都被“提前”至函数体的顶部。看以下代码

复制代码 代码如下:

复制代码 代码如下:

var global="globas";  
function globals()  
{  
    alert(global);//undefined  
    var global="hello QDao";  
    alert(global);//hello QDao  

var global="globas";  
function globals()  
{  
    alert(global);//undefined  
    var global="hello QDao";  
    alert(global);//hello QDao  
}

由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是说在函数体内部变量遮盖了同名的全局变量。尽管如此在程序执行到var语句的时候,局部变量才会被真正的赋值,因此,上述过程等价于:将函数内的变量声明“提前”至函数体顶部,同事变量初始化留在原来的位置:

由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是说在函数体内部变量遮盖了同名的全局变量。尽管如此在程序执行到var语句的时候,局部变量才会被真正的赋值,因此,上述过程等价于:将函数内的变量声明“提前”至函数体顶部,同事变量初始化留在原来的位置:

复制代码 代码如下:

复制代码 代码如下:

var global="globas";  
function globals()  
{  
 
       var global;  
    alert(global);//undefined  
    global="hello QDao";  
    alert(global);//hello QDao  

var global="globas";  
function globals()  
{  

您可能感兴趣的文章:

  • js函数内变量的作用域分析
  • javascript 函数及作用域总结介绍
  • 深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
  • js使用函数绑定技术改变事件处理程序的作用域
  • javascript 嵌套的函数(作用域链)
  • js 函数的执行环境和作用域链的深入解析
  • 关于javascript 回调函数中变量作用域的讨论
  • Javascript学习笔记之函数篇(六) : 作用域与命名空间
  • javascript函数作用域学习示例(js作用域)
  • 浅谈JavaScript的函数及作用域

       var global;  
    alert(global);//undefined  
    global="hello QDao";  
    alert(global);//hello QDao  
}

您可能感兴趣的文章:

  • js函数内变量的作用域分析
  • javascript 函数及作用域总结介绍
  • 深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
  • js使用函数绑定技术改变事件处理程序的作用域
  • javascript 嵌套的函数(作用域链)
  • js 函数的执行环境和作用域链的深入解析
  • 关于javascript 回调函数中变量作用域的讨论
  • Javascript学习笔记之函数篇(六) : 作用域与命名空间
  • javascript的函数作用域
  • 浅谈JavaScript的函数及作用域

本文由yzc216亚洲城发布于网站首页,转载请注明出处:javascript的函数作用域,javascript函数作用域学习示

关键词: yzc216亚洲城