when to use var?
Possible Duplicate:
Javascript: is using ‘var’ to declare variables optional?
如果我把var放在变量之前它不起作用,下面这个代码示例怎么样,但是如果我删除var它有效吗? 我认为你在创建新变量时必须使用var。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function myfunction () { if (document.getElementById('ramyes').checked) { var itischecked ="yes" } else if (document.getElementById('ramno').checked) { var itischecked ="no" } } function display () { myfunction() if (itischecked =="yes") { alert ("it sure is"); } else if (itischecked =="no") { alert ("it is not"); } } |
如果使用
通过设置全局变量来定义全局变量通常是不受欢迎的,因为大多数时候你需要局部变量(在你的情况下你应该从函数返回你的"itischecked"值,而不是将它存储在全局变量中),并设置变量没有
但在你这样做之前,请仔细考虑这是否是个好主意。您拥有的全局变量越多,当多个脚本使用相同的变量名称时,您获得名称冲突的可能性就越大。
创建变量时应使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var itischecked; function myfunction () { if(document.getElementById('ramyes').checked) { itischecked ="yes" } else if(document.getElementById('ramno').checked) { itischecked ="no" } } function display () { myfunction(); if (itischecked =="yes") { alert ("it sure is"); } else if (itischecked =="no") { alert ("it is not"); } } |
如果在函数内部创建变量,则该变量将成为局部变量。它只在该函数内部可见,并在从函数返回时消失。
在您的情况下,您应该使用函数的返回值,而不是将值放在变量中。这样就可以更容易地了解数据在程序中的流动方式,而且您不需要创建全局变量:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function myfunction () { if(document.getElementById('ramyes').checked) { return"yes" } else if(document.getElementById('ramno').checked) { return"no" } } function display () { var itischecked = myfunction(); if (itischecked =="yes") { alert ("it sure is"); } else if (itischecked =="no") { alert ("it is not"); } } |
只是添加到之前的答案,建议您不应该创建全局变量:为避免这样做,您需要以某种方式创建更大的范围,以便可以在两个函数之间共享变量。这就是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function myProgramme() { var itischecked; function myfunction() { if (document.getElementById('ramyes').checked) { itischecked ="yes" } else if (document.getElementById('ramno').checked) { itischecked ="no" } } function display() { myfunction() if (itischecked =="yes") { alert("it sure is"); } else if (itischecked =="no") { alert("it is not"); } } }? |
(虽然在您的具体示例中,您可以更简单地将