avatar
文章
64
标签
31
分类
36

首页
文章
分类
wn244的个人博客
搜索
首页
文章
分类

wn244的个人博客

闭包
发表于2022-06-06|JavaScript
关键点作用:能够在函数定义的作用域外,使用函数定义作用域内的局部变量,并且不会污染全局。 原理:基于词法作用域链和垃圾回收机制,通过维持函数作用域的引用,让函数作用域可以在当前作用域外被访问到。 什么是闭包?12345678910function foo() { var a = "wn244"; function bar() { console.log(a); } return bar;}var baz = foo();baz(); // wn244 在这个例子中,函数 bar 作为返回值返回后,在自己定义的词法作用域以外的地方执行。一般来说,在函数 foo 执行后,通常会期待函数 foo 的整个内部作用域被引擎回收机制销毁。而闭包可以阻止这件事情的发生。事实上内部作用域依然存在,因为函数 bar 本身在使用,所以并不会被回收。 在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。 闭包的应用无论何时何地,如果将函数作为返回值,就会看到闭包在这些函数中的应用。在定时器,事件监听器 ...
JavaScript的数据类型
发表于2022-06-06|JavaScript
JavaScript数据类型分为两类:一类是基本数据类型也叫简单数据类型,另一类是引用数据类型也叫复杂数据类型。 数据类型 基本数据类型:number、string、null、undefined、Symbol、BigInt、boolean 引用数据类型:Object(function、object、array) 区别 基本数据类型和引用数据类型它们在内存中的存储方式不同。 基本数据类型是直接存储在栈中的简单数据段,占据空间小,属于被频繁使用的数据。 引用数据类型是存储在堆内存中,占据空间大。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址,当解释器寻找引用值时,会检索其在栈中的地址,取得地址后从堆中获得实体。 SymbolES6新出的一种数据类型,这种数据类型的特点就是没有重复的数据,可以作为object的key。 数据的创建方法Symbol(),因为它的构造函数不够完整,所以不能使用new Symbol()创建数据。由于Symbol()创建数据具有唯一性,所以 Symbol() !== Symbol(), 同时使用Symbol数据作为k ...
cookie、sessionStorage和localStorage的区别
发表于2022-06-06|JavaScript
共同点Cookie、SessionStorage、 LocalStorage都是浏览器的本地存储。都是存储在浏览器本地的 Cookie、SessionStorage、 LocalStorage数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面。 区别 写入方式: cookie是由服务器端写入的,而SessionStorage、 LocalStorage都是由前端写入的 生命周期: cookie的生命周期是由服务器端在写入的时候就设置好的 LocalStorage是写入就一直存在,除非手动清除 SessionStorage是页面关闭的时候就会自动清除。 存储大小: cookie的存储空间比较小大概4KB SessionStorage、 LocalStorage存储空间比较大,大概5M。 在前端给后端发送请求的时候会自动携带Cookie中的数据,但是SessionStorage、 LocalStorage不会 应用场景由于它们的以上区别,所以它们的应用场景也不同: Cookie一般用于存储登录验证信息SessionID或者token LocalSto ...
浏览器页面之间通信
发表于2022-05-16|JavaScript
localStorage一个页面通过storage存储消息,另一个页面监听storage捕获消息 storage只能够监听同一浏览器下同源且非同一页面中的storage变化,sessionStorage只在同一会话中共享 12//页面1localStorage.setItems("msg", 1111) 1234//页面2window.addEventListener("storage",e=> { console.log(e.newValue)}) cookie一个页面向cookie中存储消息,另一个页面通过轮巡监听cookie捕获消息 postMessagewindow.postMessage() 方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以及主机 (两个页面的模数 Document.domain设置为相同的值) 时,这两个脚本才能相互通信。window.postMessage() 方法提供了一种受 ...
1…67
avatar
wn244
学习和游戏~
文章
64
标签
31
分类
36
公告
记录生活,记录BUG。
最新文章
Vue3+Vite项目初始化2023-03-14
项目打包时自动去除console.log2023-02-16
Ant Design Pro自定义菜单图标2023-02-07
html5 深浅色模式切换思路2023-01-06
CSS 文本的单行和多行溢出省略2023-01-03
分类
  • CSS5
  • Docker3
  • Everything1
  • Flv1
    • JavaScript1
  • HTML1
    • CSS1
  • HTTP1
标签
JavaScriptReactCSSDockerHTTPVueMQTTTampermonkeycanvasdockernode-redEverythingflv.jsFlvgitHTMLnginxnpmreactcomputerViteTypeScriptVSCodewebpackwebsocketMock浏览器栈队列TSUmiJS
归档
  • 三月 20231
  • 二月 20232
  • 一月 20232
  • 九月 20224
  • 八月 20226
  • 七月 202217
  • 六月 202231
  • 五月 20221
网站资讯
文章数目 :
64
本站总字数 :
41.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2022 - 2023 By wn244
框架 Hexo|主题 Butterfly
京公网安备 11011402012619号    京ICP备2022011555号-1
搜索
数据库加载中