代理与反射 ✨代理与反射✨代理基础基础用法123456const target = { id: 'target'}const proxy = new Proxy(target, {})console.log(target.id) // targetconsole.log(proxy.id) // target 捕获器12345678const 2023-03-05 JavaScript高级程序设计 #JavaScript
对象、类和面向对象编程 第八章 对象、类和面向对象编程对象对象的属性数据属性1234567let person = {};Object.defineProperty(person, "name", { configurable: true, // 是否可以删除属性,可以修改它的特性 enumerable: true, // 是否可以通过for-in循环 2023-02-26 JavaScript高级程序设计 #JavaScript
迭代器与生成器 第七章 迭代器与生成器迭代器基本使用方法迭代器只是使用游标来记录遍历的对象,如果可迭代对象在迭代期间修改了,迭代器也会反映出对应的变化 1234567let arr = ['foo', 'bar']let it = arr[Symbol.iterator]console.log(it.next()) // { done: false, value: 2023-02-25 JavaScript高级程序设计 #JavaScript
过滤器的使用和应用场景 Filter使用方式和场景主要接口Filter: 开发过滤器需要实现该接口,实现init、doFilter和destroy方法 FilterCofig: 在过滤器初始化时,传递信息,调用getInitParameter(name)获取参数的值 FilterChain: 调用过滤器链中的下一个过滤器,如果是最后一个,则调用servlet的service方法 过滤器的部署123456789101112 2023-02-20 Java-Web-开发详解阅读笔记 #Java
集合引用类型 第六章 集合引用类型Array创建数组通过new 方法创建 1const a = new Array(5) Array.from将可迭代结构或者存在length属性和可索引元素的结构转为数组 1234const a = [1, 2, 3, 4]Array.from(a)Array.from(a, x => x * 2) // 第二个参数增强新数组Array.from(a, x => 2023-02-18 JavaScript高级程序设计 #JavaScript
会话跟踪 会话跟踪Cookie会话保存到浏览器内存中,关闭浏览器后,下次访问时,又会创建新的session和sessionId 硬盘保存到硬盘中,通过Cookie.setMaxAge(num),num为正数 禁用Cookie当客户端禁用Cookie后,可以通过URL重写机制来跟踪用户会话 123// 将sessionID作为请求的一部分response.encodeURL(path)response.enc 2023-02-18 Java-Web-开发详解阅读笔记 #Java
部署程序到Tomcat和线程安全的servlet Java-Web-基础😀部署Java程序到Tomcat静态部署🎈直接将编译后的项目文件夹或者war包放到webapps中 动态部署🎈1<Context path="/test" docBase="project path" reloadable="true" /> 直接将这插入到server.xml中host节点中 2023-02-09 Java-Web-开发详解阅读笔记 #Java
JavaScript中的变量提升 Basic Syntaxlet and const hoisted变量的构造大致可以分为3个阶段:创建、初始化和赋值 12345fuction fn() { var x = 1; var y = 1;}fn(); x和y的声明过程: 进入fn,为fn创建一个执行环境 找到环境中所有var声明的变量,创建变量名 对这些变量初始化为undefined 开始执行代码 2023-02-07 JavaScript高级程序设计 #JavaScript
script加载 Script加载异步加载1<script async src='test.js'></script> 延迟加载1<script defer src='test.js'></script> 同步加载12345// 设置async为false来实现同步加载let script = document.create 2023-02-07 JavaScript高级程序设计 #JavaScript