李轻舟
李轻舟
深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。 实现一个深拷贝 ```javascript function clone(obj) { var copy; switch (typeof obj) { case "undefined": break; case "number": copy = obj - 0; break; case "string": copy = obj +...
== 运算符会进行隐式转换。 - Object ==操作符会尝试通过方法valueOf和toString将对象转换为其原始值(一个字符串或数字类型的值)。 ```javascript const a = { i: 1, // valueOf 也可达到相同效果 toString: function () { return a.i++; } } a == 1 && a == 2...
函数防抖:任务频繁触发的情况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行。 应用场景: 楼上 @wangzhijun-github 同学总结的挺好的。防抖多数是用来高频率触发,但是每一次触发又不是必须要处理的情况,比如input的onchanage、document的onscroll,window的onresize,还有onmousemove。当然有些情况节流函数也可以达到节省资源的效果。 ----------------------------------------------- - 输入框键入 以用户注册时,验证用户名是否被占用为例,如今很多网站为了提高用户体验,不会在输入框失去焦点的时候再去判断用户名是否被占用,而是在输入的时候就在判断这个用户名是否已被注册,但每次输入都会像服务端发送请求,毫无疑问是没有意义的,实际上在用户停止键入时进行查询更为合理。 ```javascript // 每次输入都发生请求 $('input.user-name').on('input', function () { $.ajax({ url: `https://just.com/check`, method: 'post', data: { username: $(this).val(), }, success(data) { if (data.isRegistered)...
### 全局环境 无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this 都指向全局对象。 ### 函数(运行内)环境 1. 简单调用(此调用未设置this) 非严格模式下,this 的值默认指向全局对象。 在严格模式下,this将保持他进入执行环境时的值。如果 this 没有被执行环境(execution context)定义,那它将保持为 undefined。 当一个函数在其主体中使用 this 关键字时,可以通过使用函数继承自Function.prototype 的 call 或 apply 方法将 this 值绑定到调用中的特定对象。(如果传递给 this 的值不是一个对象,JavaScript 会尝试使用内部 ToObject 操作将其转换为对象。)...
**执行上下文栈(Execution Context Stack)** 在ECMASscript中的上下文有三种类型:global, function和eval。 每一种代码的执行都需要依赖自身的上下文。当然global的上下文可能涵盖了很多的function和eval的实例。函数的每一次调用,都会进入函数执行中的上下文,并且来计算函数中变量等的值。eval函数的每一次执行,也会进入eval执行中的上下文,判断应该从何处获取变量的值。 注意,一个function可能产生无限的上下文环境,因为一个函数的调用(甚至递归)都产生了一个新的上下文环境。 ```javascript function foo(bar) {} // 调用相同的function,每次都会产生3个不同的上下文 //(包含不同的状态,例如参数bar的值) foo(10); foo(20); foo(30); ``` 一个执行上下文可以激活另一个上下文,就好比一个函数调用了另一个函数(或者全局的上下文调用了一个全局函数),然后一层一层调用下去。逻辑上来说,这种实现方式是栈,我们可以称之为上下文堆栈。 激活其它上下文的某个上下文被称为 `调用者(caller)` 。被激活的上下文被称为被 `调用者(callee)` 。被调用者同时也可能是调用者(比如一个在全局上下文中被调用的函数调用某些自身的内部方法)。 当一个 caller 激活了一个 callee,那么这个 caller 就会暂停它自身的执行,然后将控制权交给这个...
- display属性 ``` display: none; ``` - 透明度 ``` opacity: 0; ``` - 可见性 ``` visibily: hidden; ``` - 色值(楼上@KRISACHAN ) ```css :root { --biu: rgba(0, 0, 0, 0); }...
## 什么是 XSS攻击 Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。 为了和 CSS 区分,这里把攻击的第一个字母改成了 X,于是叫做 XSS ## XSS攻击类型 根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种。 类型 | 存储区 | 插入点 ------------ | ------------- | ----------------- 存储型...
可以把开始计算的按钮放到计算结果的上面吗?出来的结果太多了,想留下几张还有剩余分享次数的牌重新计算一下,要翻好久 (只能拖滚动条了 🤣
@delicioushotpot 这里有个交换卡牌的 [文档](https://docs.qq.com/sheet/DT0ZCV0diV1Fkdlla?tab=BB08J2) (虽然活动快结束了都 🤣
对 input 和 output 的数据结构进行分析,可以得出 1. output 中元素的 key 均为 input 元素的 id,每个 key 的值则是 input 中对应 id 元素的 types 之一 2. output 中元素的个数取决于 input 中各元素的 types 能产生的组合数 ```javascript //...