
笔记
拾文断字
什么都无法舍弃的人,什么都无法得到,走出舒适圈
展开
-
定义实现v-modal的属性与事件
//定义实现v-modal的属性与事件model: {prop: “value”,event: “change”},原创 2022-05-05 16:54:16 · 396 阅读 · 0 评论 -
浏览器的缓存机制
浏览器的缓存机制指的是通过在一段时间内保留已接收到的 web资源的一个副本,如果在资源的有效时间内,发起了对这个资源的再一次请求,那么浏览器会直接使用缓存的副本,而不是向服务器发起请求。使用 web缓存可以有效地提高页面的打开速度,减少不必要的网络带宽的消耗。web 资源的缓存策略一般由服务器来指定,可以分为两种,分别是强缓存策略和协商缓存策略。使用强缓存策略时,如果缓存资源有效,则直接使用缓存资源,不必再向服务器发起请求。强缓存策略可以通过两种方式来设置,分别是 http头信息中的 Expir.转载 2022-04-26 16:41:49 · 161 阅读 · 0 评论 -
vue样式穿透 ::v-deep
1.使用场景: 当我们需要覆盖element-ui中的样式时只能通过深度作用选择器百度之后发现 可以用 /deep/或::v-deep来解决***(不过在vue3.0的环境下,使用/deep/时,编译会报错)***。没想到官方文档中其实早就给出了解决方案,怪自己没有认真看过文档,对vue的掌握还是不够熟悉啊,得好好学习了。深度作用选择器如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符: 上述代码将会编译成:.a[data-原创 2022-03-09 16:59:02 · 311 阅读 · 0 评论 -
js-笔记-箭头函数
箭头函数虽然语法简洁,但也有很多场合不适用。箭头函数不能使用 arguments、super 和new.target,也不能用作构造函数。此外,箭头函数也没有 prototype 属性很大程度上,箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。任何可以使用函数表达式的地方,都可以使用箭头函数:let arrowSum = (a, b) => {return a + b;};let functionExpressionSum = function(a, b) .原创 2022-03-01 13:59:21 · 144 阅读 · 0 评论 -
js 图片处理-去除背景
removeImgBgFromLoadedImage(img) { const rgba = [0, 0, 0, 255]; const tolerance = 180; var imgData = null; const [r0, g0, b0, a0] = rgba; var r, g, b, a; const canvas = document.createElement('canvas'); const contex原创 2022-02-28 15:15:43 · 2558 阅读 · 0 评论 -
js 笔记 ----理解原型
无论何时,只要创建一个函数,就会按照特定的规则为这个函数创建一个 prototype 属性(指向原型对象)。默认情况下,所有原型对象自动获得一个名为 constructor 的属性,指回与之关联的构造函数。对前面的例子而言,Person.prototype.constructor 指向 Person。然后,因构造函数而异,可能会给原型对象添加其他属性和方法。在自定义构造函数时,原型对象默认只会获得 constructor 属性,其他的所有方法都继承自Object。每次调用构造函数创建一个新实例,.原创 2022-02-17 16:51:08 · 276 阅读 · 0 评论 -
js笔记--调用构造函数
要创建 Person 的实例,应使用 new 操作符。以这种方式调用构造函数会执行如下操作。(1) 在内存中创建一个新对象。(2) 这个新对象内部的[[Prototype]]特性被赋值为构造函数的 prototype 属性。(3) 构造函数内部的 this 被赋值为这个新对象(即 this 指向新对象)。(4) 执行构造函数内部的代码(给新对象添加属性)。(5) 如果构造函数返回非空对象,则返回该对象;否则,返回刚创建的新对象。...原创 2022-02-17 15:52:46 · 853 阅读 · 0 评论 -
js笔记-对象解构赋值
personAge = person.age; console.log(personName); // Matt console.log(personAge); // 27 然后,是使用对象解构的:// 使用对象解构let person = { name: 'Matt', age: 27 }; let { name: personName, age: personAge } = person; console.log(personName); // Matt console.lo.原创 2022-02-15 11:36:43 · 554 阅读 · 0 评论 -
js笔记 语法-运算符优先级
&& 先执行,然后是 ||true || false && false; // true(true || false) && false; // falsetrue || (false && false); // true=先执行,然后是+var a=42var b=a++a // 43b // 42因为 && 运算符的优先级高于 ||,而 || 的优先级又高于 ? :...原创 2022-01-27 14:58:52 · 1133 阅读 · 0 评论 -
js笔记 ==和===的 (==的类型转换)
常见的误区是“== 检查值是否相等,=== 检查值和类型是否相等”。听起来蛮有道理,然而还不够准确。很多 JavaScript 的书籍和博客也是这样来解释的,但是很遗憾他们都错了。正确的解释是:“== 允许在相等比较中进行强制类型转换,而 === 不允许var a = 42;var b = "42";a === b; // falsea == b; // trueES5 规范 11.9.3.4-5 这样定义:(1) 如果 Type(x) 是数字,Type(y) 是字符串,则返回 x .原创 2022-01-27 13:42:07 · 1223 阅读 · 0 评论 -
Object.prototype.toString.call(obj) 检测类型
console.log(Object.prototype.toString.call("jerry"));//[object String]console.log(Object.prototype.toString.call(12));//[object Number]console.log(Object.prototype.toString.call(true));//[object Boolean]console.log(Object.prototype.toString.call(undefin原创 2022-01-12 13:49:57 · 206 阅读 · 0 评论 -
js 学习笔记--switch
var num = 25switch(true){case num<0:console.log(11111111);break;case num>=10&&num<=28:console.log(22222222);break;default:consloe.log(33333333);}原创 2021-12-31 23:57:21 · 606 阅读 · 0 评论 -
js --笔记 -- 类型
JavaScript 有 七 种 内 置 类 型:null、undefined、boolean、number、string、object 和symbol,可以使用 typeof 运算符来查看。变量没有类型,但它们持有的值有类型。类型定义了值的行为特征。很多开发人员将 undefined 和 undeclared 混为一谈,但在 JavaScript 中它们是两码事。undefined 是值的一种。undeclared 则表示变量还没有被声明过。遗憾的是,JavaScript 却将它们混为一谈,在.原创 2021-12-31 18:29:17 · 71 阅读 · 0 评论 -
js 笔记 -- 原型
类的另一个核心概念是多态,这个概念是说父类的通用行为可以被子类用更特殊的行为重写。实际上,相对多态性允许我们从重写行为中引用基础行为原创 2021-12-31 18:07:39 · 535 阅读 · 0 评论 -
js 笔记 -- 动态作用域 - this指向
如果要判断一个运行中函数的 this 绑定,就需要找到这个函数的直接调用位置。找到之后就可以顺序应用下面这四条规则来判断 this 的绑定对象。由 new 调用?绑定到新创建的对象。由 call 或者 apply(或者 bind)调用?绑定到指定的对象。由上下文对象调用?绑定到那个上下文对象。默认:在严格模式下绑定到 undefined,否则绑定到全局对象。一定要注意,有些调用可能在无意中使用默认绑定规则。如果想“更安全”地忽略 this 绑定,你可以使用一个 DMZ 对象,比如 ø = O原创 2021-12-28 17:45:32 · 321 阅读 · 0 评论 -
js 笔记 -- 作用域闭包
词法作用域之外执行函数并可以访问所在词法作用域当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包。如果没能认出闭包,也不了解它的工作原理,在使用它的过程中就很容易犯错,比如在循环中。但同时闭包也是一个非常强大的工具,可以用多种形式来实现模块等模式。模块有两个主要特征:(1)为创建内部作用域而调用了一个包装函数;(2)包装函数的返回值必须至少包括一个对内部函数的引用,这样就会创建涵盖整个包装函数内部作用域的闭包。现在我们会发现代码中到处都有闭包存在,并原创 2021-12-28 14:19:30 · 334 阅读 · 0 评论 -
js-笔记 --- 提升
提升原创 2021-12-28 10:35:24 · 83 阅读 · 0 评论 -
js 笔记--函数作用域和块级作用域
区分函数声明和表达式最简单的方法是看 function 关键字出现在声明中的位置(不仅仅是一行代码,而是整个声明中的位置)。如果 function 是声明中的第一个词,那么就是一个函数声明,否则就是一个函数表达式。var a = 2;(function foo() { var a = 3; console.log( a ); // 3})();console.log( a ); // 2由于函数被包含在一对 ( ) 括号内部,因此成为了一个表达式,通过在末尾加上另外一个( ) 可.原创 2021-12-27 16:43:01 · 285 阅读 · 0 评论 -
js 笔记---词法作用域
词法作用域意味着作用域是在书写代码时函数声明的位置来决定的。编译时的词法分析阶段基本能知道所有的标识符是在哪里和如何声明的,从而能预测在执行过程中如何对它们进行查找。js中有两个机制可以欺骗词法作用域,eval() 和 with() ,但使用它们会使用得性能下降,不要使用它们。...原创 2021-12-27 15:17:40 · 106 阅读 · 0 评论 -
js 笔记-LHS RHS 作用域
js 笔记原创 2021-12-27 11:53:19 · 200 阅读 · 0 评论 -
if else 使用技巧
if(a > b){console.log(‘a大’);}else{console.log(‘b大’);};/改变1/if(a > b) console.log(‘a大’);if(a < b) console.log(‘b大’);/改变2/if(a > b) console.log(‘a大’);else console.log(‘b大’);/最简单/或者使用常见的三元操作符console.log(a>b ? ‘a大’ : ‘b大’);let orde原创 2021-11-06 10:38:37 · 153 阅读 · 0 评论 -
我的163邮箱
songliming6633@163.com原创 2021-02-27 10:16:24 · 232 阅读 · 0 评论