欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【JavaScript基础】js中关于声明提前的几个误区

发布时间:2025/4/9 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【JavaScript基础】js中关于声明提前的几个误区 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

声明提前: 

  在程序正式执行之前,都会将所有的var声明的变量提前到开始位置,集中创建,而赋值留在原地。

例如这样一段代码

console.log(a) var a = 100; console.log(a); var a = 200; console.log(a);console.log(b); b = 10; console.log(b);

声明提前之后实际上运行的先后顺序是

var a; console.log(a) //undefined a = 100; console.log(a); // 100 a = 200; console.log(a); // 200 console.log(b); // ReferenceError b = 10; console.log(b); // 10//只要碰到声明提前的问题,都要先提前,再判断输出 //代码中a变量的声明应提到作用域最前面,注意js中只有全局作用域和函数作用域 // 赋值留在原地,只声明没赋值的为Undefined // 变量b 没有声明而直接使用 会报错,但是未声明直接赋值的话,js中就会自动为其创建同名变量,再保存数据,不会出错。 // 因此从一个未声明过的变量中取值 会出错

函数中: 在程序执行之前或者函数被调用前,将var声明的变量和function声明的函数提到当前作用域顶部集中创建,赋值留在原地。

注意:

匿名函数 (定义时不指定函数名的函数)  定义完立刻执行,执行完立刻释放,只有确定函数值执行一次时使用,不提前

匿名函数自调:定义在哪儿,就在哪执行,不提前。

 

转载于:https://www.cnblogs.com/Auyuer/p/8593624.html

总结

以上是生活随笔为你收集整理的【JavaScript基础】js中关于声明提前的几个误区的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。