- 博客(42)
- 收藏
- 关注
原创 浏览器访问跨域
2.右键点击“跨域chrome”,选属性,复制以下代码(代码前面有个空格也一定要复制进去),粘贴到"目标"输入框(保留输入框原来的内容)的最后面。本地的链接都用这个副本打开就不再有任何跨域问题了。1.复制chrome的一个副本,重命名为“跨域chrome”。
2023-09-19 14:21:38 116
原创 正则表达式基本语法
[a-d]”:表示一个字符串包含小写的"a"到"d"中的一个(相当于"a¦b¦c¦d"或者"[abcd]");“^The”:表示所有以"The"开始的字符串(“There”,"The cat"等);“^abc$”:表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;“a.[0-9]”:表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;“(a¦b)*c”:表示一串"a"“b"混合的字符串后面跟一个"c”;“[ab]”:表示一个字符串有一个"a"或"b"(相当于"a¦b");
2023-03-20 17:15:14 197
原创 定义实现v-modal的属性与事件
//定义实现v-modal的属性与事件model: {prop: “value”,event: “change”},
2022-05-05 16:54:16 364
转载 浏览器的缓存机制
浏览器的缓存机制指的是通过在一段时间内保留已接收到的 web资源的一个副本,如果在资源的有效时间内,发起了对这个资源的再一次请求,那么浏览器会直接使用缓存的副本,而不是向服务器发起请求。使用 web缓存可以有效地提高页面的打开速度,减少不必要的网络带宽的消耗。web 资源的缓存策略一般由服务器来指定,可以分为两种,分别是强缓存策略和协商缓存策略。使用强缓存策略时,如果缓存资源有效,则直接使用缓存资源,不必再向服务器发起请求。强缓存策略可以通过两种方式来设置,分别是 http头信息中的 Expir.
2022-04-26 16:41:49 139
原创 vue样式穿透 ::v-deep
1.使用场景: 当我们需要覆盖element-ui中的样式时只能通过深度作用选择器百度之后发现 可以用 /deep/或::v-deep来解决***(不过在vue3.0的环境下,使用/deep/时,编译会报错)***。没想到官方文档中其实早就给出了解决方案,怪自己没有认真看过文档,对vue的掌握还是不够熟悉啊,得好好学习了。深度作用选择器如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符: 上述代码将会编译成:.a[data-
2022-03-09 16:59:02 274
原创 js-笔记-箭头函数
箭头函数虽然语法简洁,但也有很多场合不适用。箭头函数不能使用 arguments、super 和new.target,也不能用作构造函数。此外,箭头函数也没有 prototype 属性很大程度上,箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。任何可以使用函数表达式的地方,都可以使用箭头函数:let arrowSum = (a, b) => {return a + b;};let functionExpressionSum = function(a, b) .
2022-03-01 13:59:21 125
原创 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 2422
原创 ref 重写组件方法
this.$refs[‘calendar’].btnFix = function(boll) {console.log(boll, “重写组件方法”);})
2022-02-23 18:11:34 233
原创 js 笔记 ----理解原型
无论何时,只要创建一个函数,就会按照特定的规则为这个函数创建一个 prototype 属性(指向原型对象)。默认情况下,所有原型对象自动获得一个名为 constructor 的属性,指回与之关联的构造函数。对前面的例子而言,Person.prototype.constructor 指向 Person。然后,因构造函数而异,可能会给原型对象添加其他属性和方法。在自定义构造函数时,原型对象默认只会获得 constructor 属性,其他的所有方法都继承自Object。每次调用构造函数创建一个新实例,.
2022-02-17 16:51:08 258
原创 js笔记--调用构造函数
要创建 Person 的实例,应使用 new 操作符。以这种方式调用构造函数会执行如下操作。(1) 在内存中创建一个新对象。(2) 这个新对象内部的[[Prototype]]特性被赋值为构造函数的 prototype 属性。(3) 构造函数内部的 this 被赋值为这个新对象(即 this 指向新对象)。(4) 执行构造函数内部的代码(给新对象添加属性)。(5) 如果构造函数返回非空对象,则返回该对象;否则,返回刚创建的新对象。...
2022-02-17 15:52:46 826
原创 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 537
原创 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 1110
原创 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 1198
原创 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 185
原创 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 581
原创 js --笔记 -- 类型
JavaScript 有 七 种 内 置 类 型:null、undefined、boolean、number、string、object 和symbol,可以使用 typeof 运算符来查看。变量没有类型,但它们持有的值有类型。类型定义了值的行为特征。很多开发人员将 undefined 和 undeclared 混为一谈,但在 JavaScript 中它们是两码事。undefined 是值的一种。undeclared 则表示变量还没有被声明过。遗憾的是,JavaScript 却将它们混为一谈,在.
2021-12-31 18:29:17 63
原创 js 笔记 -- 原型
类的另一个核心概念是多态,这个概念是说父类的通用行为可以被子类用更特殊的行为重写。实际上,相对多态性允许我们从重写行为中引用基础行为
2021-12-31 18:07:39 518
原创 js -笔记 对象 Object
var myObject = { a:2};Object.getOwnPropertyDescriptor( myObject, "a" ); // {// value: 2,// writable: true,// enumerable: true,// configurable: true// }如你所见,这个普通的对象属性对应的属性描述符(也被称为“数据描述符”,因为它只保存一个数据值)可不仅仅只是一个 2。它还包含另外三个特性:writable(可写)、enumerab
2021-12-29 17:13:43 56
原创 js 笔记 -- 动态作用域 - this指向
如果要判断一个运行中函数的 this 绑定,就需要找到这个函数的直接调用位置。找到之后就可以顺序应用下面这四条规则来判断 this 的绑定对象。由 new 调用?绑定到新创建的对象。由 call 或者 apply(或者 bind)调用?绑定到指定的对象。由上下文对象调用?绑定到那个上下文对象。默认:在严格模式下绑定到 undefined,否则绑定到全局对象。一定要注意,有些调用可能在无意中使用默认绑定规则。如果想“更安全”地忽略 this 绑定,你可以使用一个 DMZ 对象,比如 ø = O
2021-12-28 17:45:32 299
原创 js 笔记 -- 作用域闭包
词法作用域之外执行函数并可以访问所在词法作用域当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包。如果没能认出闭包,也不了解它的工作原理,在使用它的过程中就很容易犯错,比如在循环中。但同时闭包也是一个非常强大的工具,可以用多种形式来实现模块等模式。模块有两个主要特征:(1)为创建内部作用域而调用了一个包装函数;(2)包装函数的返回值必须至少包括一个对内部函数的引用,这样就会创建涵盖整个包装函数内部作用域的闭包。现在我们会发现代码中到处都有闭包存在,并
2021-12-28 14:19:30 314
原创 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 263
原创 js 笔记---词法作用域
词法作用域意味着作用域是在书写代码时函数声明的位置来决定的。编译时的词法分析阶段基本能知道所有的标识符是在哪里和如何声明的,从而能预测在执行过程中如何对它们进行查找。js中有两个机制可以欺骗词法作用域,eval() 和 with() ,但使用它们会使用得性能下降,不要使用它们。...
2021-12-27 15:17:40 87
原创 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 137
原创 关于indexOf
indexOf 使用笔记String 类型的使用let str = 'orange'; str.indexOf('o'); //0str.indexOf('n'); //3str.indexOf('c'); //-1Number 类型的使用let num = 2016; num.indexOf(2); //Uncaught TypeError: num.indexOf is not a functionarray 类型的使用let arr = ['orange', '2016',
2021-01-14 16:06:09 98
原创 关于微信app支付,支付验证签名失败
用的是uniapp的方法,一直报 支付验证签名失败然后sign只截取前30位字符串,就能成功支付了不明白是什么问题,希望可以帮到你
2021-01-12 16:24:36 1181 8
原创 父组件中操作子组件 子组件操作父组件
$refs 让我们可以在父组件中进行操作子组件的数据以及方法。 $parents 让我们可以在子组件中对父组件的data和方法操作。
2020-12-16 15:49:32 293 1
原创 vue 虚拟列表简单实现
<template> <div class="list-view" @scroll="handleScroll"> <div class="list-view-phantom" :style="{height: contentHeight}"></div> <div ref="content" class="list-view-content"> <div class="list-view-item" :st
2020-11-24 15:12:09 669
原创 js进阶学习
JavaScript的运行机制,作用域,原型链,变量特点等底层原理。设计模式,架构思维,编程思想,软件工程的常见问题我们都会写路由。但是你知道路由如何写才能保证多路由模块解耦,保证更方便增加新的路由模块吗?我们都会对Vue项目最后打包上线。但是你知道如何编写配置文件能让打包速度最优化吗?我们都会写组件。但是你知道怎么让组件能够成为高复用性的组件库型组件吗?诸如此类的问题,是实践中区分前端水平高低的最重要因素,也是很多前端程序员迟迟等不到大厂offer,突破不到高级前端的重要因素。对很多.
2020-06-03 16:12:47 249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人