JavaScript沙箱模式

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript沙箱模式相关的知识,希望对你有一定的参考价值。

概念

沙箱:环境,黑盒,在一个虚拟的环境中模拟真实世界,做实验,实验结果和真实世界的结果是一样,但是不会影响真实世界。

说白了:沙箱就是javascript中一块完全独立的区域,使用的都是自己独立的属性和方法。

就是一个自调用函数(立即执行函数),(function(){})()

比如说下面的代码

var num=10;
console.log(num+10);

改用沙盒就是

//沙箱---小环境
(function () {
  var num=20;
  console.log(num+10);
}());

沙箱的用途

  • 沙箱模式一般应用在书写第三方框架
  • 为第三方框架书写插件
  • 书写功能独立的一些组件

沙箱模式的优势

  • 沙箱模式不会再外界暴露任何的全局变量,也就不会造成全局变量的污染。
  • 沙箱中的所有数据,都是和外界完全隔离的,外界无法对其进行修改,保证代码安全性。

案例

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>

</head>
<body>
<div>这是div</div>
<div>这是div</div>
<div>这是div</div>
<p>这是p</p>
<p>这是p</p>
<p>这是p</p>
<script>
  var getTag = 10;
  var dvObjs = 20;
  var pObjs = 30;
  (function () {
    //根据标签名字获取元素
    function getTag(tagName) {
      return document.getElementsByTagName(tagName)
    }
    //获取所有的div
    var dvObjs = getTag("div");
    for (var i = 0; i < dvObjs.length; i++) {
      dvObjs[i].style.border = "2px solid pink";
    }
    //获取所有的p
    var pObjs = getTag("p");
    for (var i = 0; i < pObjs.length; i++) {
      pObjs[i].style.border = "2px solid pink";
    }
  }());
  console.log(getTag);
  console.log(dvObjs);
  console.log(pObjs);
</script>
</body>
</html>

以上是关于JavaScript沙箱模式的主要内容,如果未能解决你的问题,请参考以下文章

沙箱模式

安全沙箱并执行用户提交的 JavaScript?

Chrome浏览器远程代码执行漏洞(无沙箱模式)

Chrome浏览器远程代码执行漏洞(无沙箱模式)

Chrome浏览器远程代码执行漏洞(无沙箱模式)

Chrome浏览器远程代码执行漏洞(无沙箱模式)