Javascript全局变量类型改变
Javascript global variable type change
在Javascript中,我可以在不同的函数作用域中分配不同数据类型的全局变量。例如:
var a = 1;
function foo(){
a = a + 10; //a is number in foo
}
function bar(){
a = a + "hello"; //a is string in bar
foo(); //a is string in foo now
}
foo();
bar();
我的例子只是一个简单的演示,我相信大多数Javascript程序员不会写它。但是,全局变量在不同函数中改变其数据类型的动态特性是否有任何实际用途?
动态类型允许你做这样的事情:
var a = false;
if(need to show msg 1){a="message 1"};
if(need to show msg 2){a="message 2"};
if(a){display(a);}
这个例子不是很好,但是思想是,您可以使用相同的变量作为条件和内容,或者作为数组元素和错误消息,如果您正在寻找的不是在数组中,…
顺便说一下,当你写a = 1
时,它实际上等同于window.a = 1
;全局变量可以看作是窗口对象的属性。查看这里的精确度)。
所以当你写a = a + "hello";
, a成为一个字符串无处不在,而不仅仅是'在foo'。
-
var a = 1; //global variable
- 在
foo()
中,如果(1)被定义
function foo(){
a; //In this case a will be global variable and a = 1
}
function foo(){
var a; //In this case a will be private variable, a = undefined but global varibale a not change
}
这取决于你想做什么。在Javascript中,如果使用大量回调,那么被操纵成不同类型的全局变量可能是危险的。回调函数触发很多(当然是异步的)和操作全局变量可能会使您最终在一个或多个回调函数中读取错误的数据,并且会出现意想不到的结果,从而偏离代码的意图。
相关文章:
- 使用输入类型=“0”改变Circle谷歌地图的半径;“范围”;
- JQuery改变输入类型隐藏值
- 你如何链承诺,但改变类型从一个然后到另一个
- 输入类型按钮,以改变焦点的输入按
- 在Highcharts中添加一个下拉菜单来改变AngularJs的图表类型
- Javascript全局变量类型改变
- 谷歌可视化改变列数据类型
- 在不改变值的情况下格式化输入类型文本
- JavaScript在IE中没有改变显示类型或颜色
- JsTree:改变"打开"使用“类型”的文件夹图标插件
- 如何“;改变“;输入类型文件样式
- 有可能改变“剑道数据化”吗?运行时的图表类型
- Javascript调用改变类型
- Javascript动态改变输入类型在IE8上不起作用
- Function.prototype.call在严格模式之外改变this的类型;为什么
- 如何改变数据类型的嵌入式对象- mongoDB
- 根据AngularJS变量改变DOM元素类型
- 改变地图类型的缩放变化与用户的鼠标
- 如何将Integer转换为float而不改变javascript中的字符串类型
- 当拖动一个小元素时,是否有可能避免在CSS光标类型之间改变?