让我们来详细讲解一下“nodejs与浏览器中全局对象区别点总结”的完整攻略。
内容
本攻略主要讲解nodejs与浏览器中全局对象的区别。我们知道,在浏览器中,全局对象是window
,而在nodejs中,全局对象是global
。下面是两者的区别:
1. this
在浏览器中全局作用域下,this
指向window
,我们可以使用:
console.log(this === window); // 输出true
而在nodejs中,this
并不指向global
,而是指向一个空对象{}
,我们可以使用:
console.log(this === global); // 输出false
console.log(this === {}); // 输出true
2. setTimeout
和setInterval
在浏览器中,我们可以使用window.setTimeout()
和window.setInterval()
函数来设置定时器,而在nodejs中,我们需要使用setTimeout()
和setInterval()
函数来设置定时器,因为在nodejs中全局作用域下没有window
这个对象。
下面是两个示例说明:
浏览器中使用setTimeout()
:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function printHello() {
console.log("Hello world");
}
setTimeout(printHello, 1000);
</script>
</body>
</html>
上面的示例会在1秒钟后输出"Hello world"。
而在nodejs中,我们可以使用下面的代码:
function printHello() {
console.log("Hello world");
}
setTimeout(printHello, 1000);
上面的代码也会在1秒钟后输出"Hello world"。
总结
以上便是nodejs与浏览器中全局对象区别点的总结,主要包括this
和setTimeout()
/setInterval()
两个方面。在实际开发中,我们需要根据具体情况选择使用不同的全局对象来实现我们需要的效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs与浏览器中全局对象区别点总结 - Python技术站