如何在 JavaScript 中将函数内的局部变量变成全局变量?
PS:只是纯 JavaScript,没有 jQuery。
PPS:没什么太复杂的,谢谢。:)
码
function hi() {
myvar = 'local variable';
}
console.log(myvar);
Run Code Online (Sandbox Code Playgroud)
输出:ReferenceError:未定义myvar
根据我的理解,javascript逐行,检查变量及其范围.记住这一点不应该是以下打印'undefined',因为myvar存在于全局范围内?
我需要一些线程化java脚本的概念.实际上我遇到了一个问题.问题是我有一个函数A()调用函数B和C.
function A(){
B();
C();
}
function B(){
//doing some task
i=something;
alert(i);
}
function C(){
// i need value I here.
alert(i) //getting undefined
}
Run Code Online (Sandbox Code Playgroud)
我需要同步通话...
我有以下HTML代码.我创建了一个客户对象.(custForATM.js中的约束器):
<html>
<script src="js/custForATM.js"></script>
<script src="js/ATM.js"></script>
<script type="text/javascript">
var customer = new CustomersATM("300321758","1234","Eric");
</script>
<body>
<button onclick="changeID()">Add One to Customer ID</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
函数changeID()位于不同的JS文件(ATM.js)中.我希望单击此按钮将添加发送变量"customer"到changeID函数.可能吗?(我知道我可以将此方法移动到html文件中.但我不想要.
谢谢!!
我正在生成一个数字列表:
[1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19]
Run Code Online (Sandbox Code Playgroud)
注意一些数字是如何丢失的(在这种情况下,每5个数字).我想将连续数字转换为范围,由短划线分隔.
在上面的例子中,我想输出
"1-4,6-9,11-14,16-20"
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我试图删除ul(列表项)中的元素,因此只使用javascript.因为我动态生成html,所以我试图设置onclick,因为我在下面创建它.但是,当我尝试单击(请参阅小提琴)时,元素不会被删除.相关功能如下:
var appendHTML = function (el) {
var list = document.getElementById("events");
for (var i = 0; i < filteredDates.length; i++) {
var listItem = filteredDates[i].name;
listItem.className = "event-list";
listItem.setAttribute("onclick", "deleteEvent()");
list.appendChild(listItem);
}
};
var deleteEvent = function () {
var listItem = this.parentNode;
var ul = listItem.parentNode;
//Remove the parent list item from the ul
ul.removeChild(listItem);
return false;
};
Run Code Online (Sandbox Code Playgroud)
我正在Google Chrome上对此进行测试:
function test(){
d = 2;
}
function test2(){
test();
document.write(d);
}
test2();
Run Code Online (Sandbox Code Playgroud)
函数中的变量d test应该是本地的,所以我无法在函数中访问它test2,有人可以解释为什么这有效吗?
编辑:
这不是重复的,因为我在原始问题的正确答案中找不到任何地方使用不带var的变量使其成为全局变量,它被隐含地称为"隐式全局变量的恐怖"