为什么这两个的结果一个是string,一个是function

解决方案 »

  1.   


    function  c(c){
    }c只是一个名字,你可以理解为一段咒语“雷咒”, c后面的函数是 咒语的效果,比如 ”掉下一段雷劈死你“
    var c="aaa";
    这里 c没变还是一段咒语“雷咒”,但是后面的被你改变了,现在c只代表一个“aaa”物体了。
      

  2.   

    var b;只是声明了变量,并没有赋值操作,不会改变变量的值。
      

  3.   

    console.log(typeof c);//输出function c已经被预定义(但只会取初始化时的变量类型,即function而不是string),但实际值为undefined
        function c (c) {}
        console.log(typeof c);//输出function
        c = "aaa";
        console.log(typeof c);//输出string    console.log(typeof b);//输出function 原因同上
        function b (b) {}
        console.log(typeof b);//输出function
        b;
        console.log(typeof b);//输出function b定义为function,但并没有像c那样被重新赋值,所以b的值保持不变,仍然是一个function
      

  4.   

    var b只是声明一个变量,而function() b{}相当于,var b=function(){}