返回语句不工作,使用document.write
Return statement not working, with document.write
为什么document.write(added);
不能工作?
function first(){
var now = new Date();
var first=Math.round(now.getMilliseconds()/20);
var second=Math.round(now.getMilliseconds()/30);
var added=first+second;
return added;
}
first();
document.write(added);
Javascript有函数作用域,这意味着在函数中声明的任何变量都不能在该函数之外访问。return added
返回添加的值,而不是变量added
本身。如果要使用该值,则需要将其放在函数外部声明的变量中:
function first(){
var now = new Date();
var first=Math.round(now.getMilliseconds()/20);
var second=Math.round(now.getMilliseconds()/30);
var added=first+second;
return added;
}
var firstResult = first();
document.write(firstResult);
更高级,但相关的:Javascript变量作用域的类型
因为added
不是全局变量,因此当您调用document.write时,它超出了作用域。
您需要将返回值保存在调用document的同一作用域中的变量中。Write,即本例中的全局作用域。正确的代码应该是:
function first(){
var now = new Date();
var first=Math.round(now.getMilliseconds()/20);
var second=Math.round(now.getMilliseconds()/30);
var added=first+second;
return added;
}
var returnValue = first(); // store returned 'added' in returnValue
document.write(returnValue);
由于scope issue
已经被指向,我将添加另一种方式来打印结果
document.write(first());
相关文章:
- 如何使用 document.querySelectorAll 遍历选定的元素
- 仅对标题标记的一部分使用document.write
- Javascript:使用document.write时删除子项
- Javascript 使用 document.write 编写 innerHtml 的值
- 无法使用document.getElementById获取动态生成的单元格的值
- 使用document.cookie将客户端javascript转换为节点模块
- 使用document.readyState正确使用Selenium
- .click() 使用 document.getElementById,但不使用 jquery selector
- 如何在 javascript 中使用 document.getelementbyname 中的 if 条件
- 如何在不定义变量的情况下使用 document.createElement()
- 在 chrome 中使用 document.removeChild() 删除脚本
- 从路径加载的JavaScript;如何使用 document.getelementbyid.
- 为什么不能使用 document.getElementById 来替换 JavaScript 中的 $
- 使用 document.referrer 获取父 URL
- 为什么我需要使用 document.write 而不是 DOM 操作方法
- 使用document.write()在页面上显示图像
- 无法运行php函数来使用document.write更新db值
- 使用document.write时的Javascript顺序性
- 想要使用document.getelementbyid显示两个变量
- 如何使用document.getElementById中的变量