zoukankan      html  css  js  c++  java
  • javascript变量提升

    javascript变量提升

    1,首先运行以下代码查看结果

    var v='Hello World'; 
    alert(v); 

    var v='Hello World';
    (function(){
    alert(v);
    })()

    var v='Hello World'; 
    (function(){ 
    alert(v); 
    var v='I love you'; 
    })() 

    解析:javascript语言存在函数级作用域(只有函数才会创建新的作用域)。变量提升,顾名思义就是把变量提升到函数的top位置,但注意变量提升只是针对声明的提升,并不会对赋值就行提升,

    故以上代码等价于:(由于v只声明未赋值,所以alert出underfined)

    var v = “Hello  World”;

    (function() {

    var v;

    alert(v);

    v="I love you";

    }

    二:函数提升

    函数提升,顾名思义就是将整个函数提到前面去。在js中函数有两种写法:一:函数表达式;二:函数声明式;需要注意的是只有函数声明式才能被提升。

    1,函数声明式(可以被提升)

    function myTest(){ 
    foo(); 
    function foo(){ 
    alert("我来自 foo"); 


    myTest(); 

    2,函数表达式(不能被提升,报错  foo is not a function

    function myTest(){ 
    foo(); 
    var foo =function foo(){ 
    alert("我来自 foo"); 


    myTest(); 

  • 相关阅读:
    JQuery源码解析(九)
    JQuery源码分析(八)
    C#的扩展方法解析
    JQuery基础DOM操作
    Ajax中的eval函数的用法
    EF上下文管理
    Asp.Net请求管道中的19个事件
    JQuery源码分析(七)
    SoftReference、WeakReference、PhantomRefrence分析和比较
    php 计算gps坐标 距离
  • 原文地址:https://www.cnblogs.com/shmily-code/p/7804580.html
Copyright © 2011-2022 走看看