关于javascript:小记函数提升及变量提升

7次阅读

共计 684 个字符,预计需要花费 2 分钟才能阅读完成。

如果一个变量,还未定义就开始应用,就会触发“函数晋升及变量晋升 ”的机制
函数晋升及变量晋升 形容
因为 js 的运行机制,简略概括为:js 脚本,先解析代码,再执行它。解析的过程,会把其作用域内的函数申明取出来,再把变量都赋值为 undefine。当执行的时候(就是咱们运行代码,能够打断点调式的时候),尽管一个变量未声明就应用了,然而它曾经在解析那一过程中被申明,作赋值操作了,所以,变量的值为 undefine,如果是调用未声明函数,也能够失常应用
如果遇到函数名字和变量名字一样,都处于晋升状况的时候,函数晋升优先级大于变量(理论开发中会有人这么干嘛),然而当变量赋值后,变量的值就不再是函数了,例子见下

1. 当形参和变量名字一样时

function test(arg) {//arg="hi"
            console.log(arg);// 输入内容为“hi”var arg = "hello"; // 此处赋值后,下面两处 arge="hello"
            console.log(arg);// 输入内容为“hello”}
        test("hi");

2. 当形参和变量及函数名字一样时

function test(arg) {//arg = ƒ arg()
            console.log(arg);// 输入内容为“function arg(){console.log("hello world");}”var arg = "hello";// 此处赋值后,下面两处 arge="hello"
            function arg() {console.log("hello world");
            }
            console.log(arg);// 输入内容为“hello”}
        test("hi");
正文完
 0