美文网首页
JavaScript作用域

JavaScript作用域

作者: woshixixi | 来源:发表于2018-02-14 11:22 被阅读0次
    //  1
    //  1-1
    var color ="blue";
    function getColor(){
      console.log(color);//undefined
      var color = "yellow";
      console.log(color);//yellow
    }
    getColor();
    //  1-2
    var color ="blue";
    function getColor(color){
      console.log(color);//blue
      var color = "yellow";
      console.log(color);//yellow
    }
    getColor();
    //  1-3
    var color ="blue";
    function getColor(){
      console.log(color);//blue
    }
    getColor();
    //  1-4
    var a = 10;
    function aaa(){
        console.log(a);
    }
    function bbb(){
       var a = 20;
       aaa();
    }
    bbb();  //10!!!!不是20
    
    
    //  2
    //  2-1
    var color;
    console.log(typeof color);//undefined
    //  2-2
    var color;
    function color(){};
    console.log(typeof color); //function
    //  2-3
    var color = 123;
    function color(){ console.log("...")};
    console.log(typeof color);//number
    
    //  3 普通定义函数,调用在前的话,会将定义的函数提前,但不会将匿名函数提前
    //  3-1
    getName() //function
    var getName = function () {
      console.log('niming funtion')
    }
    function getName() {
      console.log('function')
    }
    //  3-2
    getName() //function
    var getName = function () {
      console.log('niming function')
    }
    function getName() {
      console.log('function')
    }
    getName() //niming function
    
    //  4 不同<script>块中的函数互不影响
    <script>
      getName()
      var getName = function () {
        alert('niming')
      }
    <script>
    <script>
      function getName() {
        alert('function')
      }
    <script>
     
    //代码执行报错:TypeError: getName is not a function
    //因为第一个<script>块中getName()函数未定义,匿名函数又不会向上提升
    

    相关文章

      网友评论

          本文标题:JavaScript作用域

          本文链接:https://www.haomeiwen.com/subject/mlhetftx.html