关于JS里面的变量提升
来源:互联网 发布:vmp脱壳软件 编辑:程序博客网 时间:2024/06/05 02:17
之前和一个同事做一个项目的时候遇到了一个变量提升的问题,明明已经定义了但是会弹出undefined.后来查了一下,因为是变量提升的原因才导致的。
var V="Hello World"; (function(){ alert(V); var V="111" })()这个时候你会弹出一个undefined,按照我们本来的思路应该是弹出一个Hello World或者111,和undefined是完成不沾边的。
当我们把函数改成这个样子的时候
var V="Hello World"; (function(){ var V="111" alert(V); })()
弹出的东西就是111,没错,这牵涉到了作用域的东西。一般我们把变量声明在作用域的顶端就不会出现这种问题,但是变量提升,它仅仅提升的只是变量,并没有提升变量的值。我们回到第一个demo:
var V="Hello World"; (function(){ var V; alert(V); V="111" })()
实际上是这样的,这样你弹出的东西就是undefined了,因为你提升了变量,到了作用域的顶端,但是值在alert下方。JS是从上往下执行。自然而然它就没有找到。
所以以后我们以后定义变量以及值最好是定义在作用域的顶端。这样会避免一些不必要的错误。
0 0
- 关于JS里面的变量提升
- 关于js 的变量提升
- 关于js的变量提升
- 关于js里面的变量范围
- js的变量提升和函数提升
- js的变量提升和函数提升
- js关于变量提升(匿名函数)
- 关于变量提升的易错点
- 关于js中变量作用于和变量提升的那些事
- node.js关于一个js文件引用另一个js文件里面的函数或者数组变量
- js 变量 函数名的提升
- js变量,声明提升的坑
- 深入理解js的变量提升和函数提升
- js 的变量声明提升,以及赋值不提升
- 深入理解js的变量提升和函数提升
- 深入理解js的变量提升和函数提升
- 关于JavaScript变量提升的理解
- js中的变量提升
- TortoiseSVN使用简介
- 有限状态机--自动售报机
- C++的4种类型转换关键字及其特点
- iOS 关于SEL的简单介绍
- 第三章 第六题
- 关于JS里面的变量提升
- BaiduMap 显示地图
- P122 第6题 小写转大写
- 虚拟机 virtualbox 安装 CUDA 可行性说明
- YUV4:2:2转换成RGB的代码
- Sturts2 HelloWorld
- Android Studio - UNEXPECTED TOP-LEVEL EXCEPTION:
- View controller-based status bar appearance
- Arcgis标注语义换行