js中一些有趣的现象

Posted sundjly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中一些有趣的现象相关的知识,希望对你有一定的参考价值。

1,js中关于函数提升(在ES5中)

 function f(){console.log(‘I am outside!‘)}
    (function(){
        if(false){
//            重复声明一次函数       当然  在严格模式下是不允许在if,循环代码块中声明函数的
            function f(){console.log("I am inside!")}
        }
        f();
    })();
    //结果为I am inside!      因为在ES5中存在变量  函数提升,重复声明,后面的覆盖前面的,所以最终函数是function f(){console.log("I am inside!")}

在ES6中用let声明就会产生块级作用域,不用立即执行匿名函数了

 

2.

alert(a)
a();
var a=3;
function a(){
    alert(10)
}   
alert(a)
a=6;
a();  

------------分割线------------------

alert(a)
a();
var a=3;
var a=function(){
    alert(10)
}   
alert(a)
a=6;
a(); 
链接:https://juejin.im/post/5a0c170c6fb9a0451c39eff2

 

以上是关于js中一些有趣的现象的主要内容,如果未能解决你的问题,请参考以下文章

有趣的 C++ 代码片段,有啥解释吗? [复制]

php 有趣的代码片段在某些时候可能会有用。

从最简单的感知器学习到的一些有趣的现象

审核中的有趣现象

关于js中的所谓的for循环典型问题的剖析,通过现象看本质

有趣的网页小部件笔记