zoukankan      html  css  js  c++  java
  • 函数内部变量与该函数名冲突会怎样

    有下面一段代码,它的运行结果是什么:

    b=fnnction c(){
        a=1,b=2,c=3;
        console.log(a);  
        console.log(b);  
        console.log(c);  
    }
    b();

    答案:

    console.log(a);  //1
    console.log(b);  //2
    console.log(c);  //function c(){...}
    

      

    知识点:函数内部变量与该函数名冲突会怎样?

    1、下面例子中fn只能在函数内部使用,在函数外部使用会报错,提示:fn is not undefined

    2a在函数中被改掉,那么fn这个函数再此次调用结束后会被清除,a会变成1

    var a=function fn(){
    	a=1;
    	console.log(a); // 1
    	console.log(fn); // function fn(){...}
    }
    console.log(a);  //function fn(){...}
    a();
    console.log(a); //1
    console.log(fn); //Uncaught ReferenceError: fn is not defined
    

     

    3fn是一个函数标识符,在该函数内部有变量与fn冲突,不会被覆盖;

    var a=function fn(){
    	fn=10;
    	console.log(fn); // function fn(){...}
    }
    a();
    console.log(fn); //Uncaught ReferenceError: fn is not defined
    

    4、在该函数外部有变量与fn冲突,会被覆盖的:

    function fn(){
      console.log(fn); // function fn(){...}
    }
    fn =20;
    console.log(fn); //20
    

      

    总结:

    变量与函数声明冲突会被忽略,

    函数声明与函数声明冲突会覆盖

  • 相关阅读:
    读《持续交付2.0》
    “兼职”运维的常用命令
    技术管理者怎样跳出“泥潭”
    使用RabbitMQ实现接口补偿
    dotNET Core 中怎样操作 AD?
    dotNET Core实现分布式环境下的流水号唯一
    Git 远程仓库
    分之管理
    git 基本操作----git diff
    git 基本操作----git reset、log
  • 原文地址:https://www.cnblogs.com/aredleave/p/7566913.html
Copyright © 2011-2022 走看看