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(); 

  • 相关阅读:
    MyEclipse安装插件的三种方法和使用心得
    Rest-Assured
    HTTP Status 500
    ASP.NET C#_HTML练习
    Python网络管理模块Paramiko-代码实例
    CTF中遇到的php
    HTML,CSS,Javascript,PHP在网站结构中扮演的“角色”
    ctf中关于图片的隐写随笔(不全)
    Unicode和Ascii的区别
    1221作业
  • 原文地址:https://www.cnblogs.com/shmily-code/p/7804580.html
Copyright © 2011-2022 走看看