Worker&worker.js

Worker

原始代码

 <script>
     console.log('开始');
     //复杂计算
     let sum=0;
     for(var i=0;i<100000000;i++)
     {
       sum +=i;
     }
     console.log(sum);

     console.log('结束');

 </script>   

在这里插入图片描述

const worker = new  Worker('worker.js');//新建worker.js,创建一个web worker 注:web worker是一个独立的进程,不能操作DOM和BOM
     console.log('开始');
     worker.addEventListener('message',(e)=>{console.log(e.data)})
     console.log('结束');

worker.js

 //复杂计算 
 let sum=0;
 for(var i=0;i<100000000;i++)
 {
   sum +=i;
 }
 
 self.postMessage({total:sum});

在这里插入图片描述

在JavaScript中,`typeof window`、`self` 和 `global` 的检测逻辑通常用于确定代码运行的环境。由于JavaScript可以在多种环境中运行(如浏览器、Node.js等),开发者经常需要根据不同的环境执行特定的代码逻辑。以下是对这些检测逻辑的详细解释: ### `typeof window` `window` 是浏览器环境中全局对象的引用。在浏览器中,所有全局变量和函数都会成为 `window` 对象的属性。`typeof window` 通常用于检测代码是否在浏览器环境中运行。 ```javascript if (typeof window === 'object') { // 代码运行在浏览器环境中 } ``` 此检查确保 `window` 存在并且是全局对象,避免在非浏览器环境中访问未定义的 `window` 导致错误。 ### `self` `self` 是 Web Worker 环境中的全局对象引用。在浏览器中,`self` 与 `window` 相同,但在 Web Worker 中,`window` 不可用,而 `self` 可以用来引用全局对象。 ```javascript if (typeof self === 'object') { // 代码运行在Web Worker环境中 } ``` ### `global` `global` 是 Node.js 环境中的全局对象引用。类似于浏览器中的 `window`,Node.js 中的所有全局变量和函数都会成为 `global` 对象的属性。 ```javascript if (typeof global === 'object') { // 代码运行在Node.js环境中 } ``` 此检查通常用于检测 Node.js 环境,以确保代码能够正确地与 Node.js 的全局对象交互。 ### 综合检测逻辑 为了确保代码能够在不同环境中正确运行,可以使用一个综合的检测逻辑来确定全局对象: ```javascript var root = typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : typeof global !== 'undefined' ? global : {}; // 现在root就是当前环境下的全局对象 ``` 这种方法首先检查 `window` 是否存在,如果不存在则尝试检查 `self`,最后检查 `global`,从而提供了一个跨环境的解决方案。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值