![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Js
三水草肃
爱前端
展开
-
通过JavaScript执行机制去学习闭包,执行上下文,作用域,作用域链。
函数执行中的变量和函数:在执行过程中,若使用了未声明的变量,那么 JavaScript 执行会报错。在一个变量定义之前使用它,不会出错,但是该变量的值会为 undefined,而不是定义时的值。在一个函数定义之前使用它,不会出错,且函数能正确执行。下面是关于同名变量和函数的两点处理原则:如果是同名的函数,JavaScript编译阶段会选择最后声明的那个。如果变量和函数同名,那么在编译阶段,变量的声明会被忽略变量提升:JS代码在执行过程中,JS去引擎把变量的声明部分和函数的声明部分提升到原创 2022-02-09 00:32:58 · 385 阅读 · 17 评论 -
几道很好的this指向的题目。
箭头函数的this指向最近一层的非箭头函数,否则指向全局。原创 2022-01-25 14:27:48 · 777 阅读 · 3 评论 -
解决localstorage容量大导致页面加载变慢
项目场景:提示:性能优化之localstorage的大容量导致加载变慢:例如:我负责一个项目,原先的数百条数据是存储在localstorage里面,但是localstorage容量标准是5MB问题描述:问题:我负责的项目localstorage存储的数据量太大,高达200+条。而且每条数据很长,所以每次页面加载/更新慢的让人受不了 原因分析:原因:localstorage容量标准是5MB,我负责的项目原先的存储在localstorage的数据量太大,导致性能低下。解决方案:我的解决原创 2021-09-05 14:44:53 · 2819 阅读 · 51 评论 -
原生实现DIV拖拽功能(修复)和搜索框的模糊查询
项目场景:筛选框增加拖拽功能问题描述:拖拽功能增加之后,点击筛选框里面的数据进行筛选的时候会发生移位 原因分析:发生移位是因为点击筛选框里面的数据发生了拖拽,我写的拖拽功能是在整个筛选框中解决方案:提示:这里填写该问题的具体解决方案:例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 mHandler.sen原创 2021-08-04 11:51:23 · 181 阅读 · 2 评论 -
记录一次safari和chrome浏览器时间格式不兼容的问题
问题描述:需要兼容到mac用户自带的safari浏览器,但是时间控件在safari上显示失败。原因分析:safari的时间格式是 2021/7/18但是chrome浏览器的时间格式是 2021-7-18所以需要兼容两者的时间格式解决方案:1. 写一个全局函数,用来兼容safari和chrome的时间格式。用时间的时候调用这个函数。function sarifa_window() { var explorer =navigator.userAgent ; let date原创 2021-07-18 19:10:34 · 807 阅读 · 24 评论 -
记录一次toml库CommonJS规范与项目不兼容的问题
项目场景:我需要解析toml文本为json,然后遍历它得出想要的数据问题描述:我的项目支持toml库CommonJS规范原因分析:我的项目一直在维护中,项目环境不支持CommonJS规范,而toml库用的是CommonJS规范最初我使用的toml低版本,可以支持我的项目。但是不能解析最新版本的toml格式。然后我换成另一个toml库版本,我手动修改源码把CommonJS我项目支持的ES6规范,但是稳定性不好最后的使用browerify编译我的toml库文件解决原创 2021-07-10 16:30:28 · 274 阅读 · 8 评论 -
新标签页打开链接_显示空白的问题!
问题描述:提示:右键打开新的标签页跳转之后显示about:blank#blocked。花费两个小时很久的问题,最后在打印出来的href解决掉它。解决方案:代码document.addEventListener("contextmenu", (event) => { var location = window.location.href.split('#/')[0] + '#/' + event.target.title; event.toElement.原创 2021-07-05 20:00:23 · 8036 阅读 · 1 评论 -
解决window.open打开之后,原窗口不能操作
答案: window.open(url, “_blank”, “noreferrer”);window.open(url, windowName, [windowFeatures]);url要加载的urlwindowName 可选的A DOMString的浏览上下文(窗口,指定的名称 或标签)到其中加载指定的资源; 如果名称不指示现有上下文,则会创建一个新窗口并为其指定名称windowName。windowFeatures 可选的这些功能包括窗.原创 2021-07-02 00:23:17 · 3468 阅读 · 0 评论 -
CodeMirror的代码差异比较着色MarkText
let arrLines = [] var editor= CodeMirror.fromTextArea(document.getElementById("editor") editor.on('inputRead',function(e) { arrLines .push(e.doc.getCursor()) }) for(let i = 0 ;i < arrLines .length; i++) { let line = arrLines[原创 2021-05-26 13:13:10 · 2334 阅读 · 30 评论 -
URL查询字符串,取参数放到对象中
方法一```javascriptconst url = "http://www.baidu.com? a=1&b=2&abc=123" let data = url.split('?')[1].split('&') let obj = {}for (let i = 0; i < data.length; i++) { obj[data[i].split('=')[0]] = JSON.parse(data[i].split('=')[1])}cons.原创 2020-12-17 22:33:02 · 324 阅读 · 0 评论 -
JS脑图--后续完善
原创 2020-12-10 06:59:50 · 183 阅读 · 0 评论 -
Set和Map
Set是一种叫做集合的数据结构Map是一种叫做字典的数据结构应用场景:数据去重和数据存储Set集合是由一组无序且唯一的项组成的,可以想象成集合是一个既没有重复元素,也没有顺序概念的数组ES6提供了新的数据结构Set,类似于数组,但是成员的值都是唯一的,没有重复的值Set本身是一个构造函数,用来生成Set数据结构的属性size:返回字典所包含的元素个数操作方法add(value): 添加某个值,返回Set结构本身delete(value):删除某个值,返回一个布尔值,表.转载 2020-12-06 16:27:49 · 3204 阅读 · 0 评论 -
vue双向绑定
先进行v-model进行绑定,绑定到数据,然后通过获取数据进行数据传递就可以了。草草了之,还需要多进行学习原创 2019-11-19 17:03:22 · 103 阅读 · 0 评论 -
DOM树
DOMJavascript操作网页的接口,全程为"文档对象模型"(Document Object Model)有这几个概念:文档,元素,节点整个文档是一个文档节点每个标签是一个元素节点包含在元素中的文本是文本节点每一个属性是一个属性节点注释属于注释节点DOM树:1.DOM树是结构,所谓层级结构是指元素和元素之间的关系。父子,兄弟。解析输出的树是由DOM节点时,意思就是这个...转载 2019-10-25 17:22:51 · 1116 阅读 · 0 评论 -
新手第一次写博客,请多多指教。
面向对象编程创建对象JavaScript对每个会设置一个原型,只想他的原型对象,当我们用obj.xxx访问一个对象1的属性时,JavaScript引擎现在当前对象查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到object.prototype对象,最后,如果还没有找,就只能返回undefined例如:创建一个Array对象:var arr=[1,2,3];其原型...转载 2019-07-06 16:04:27 · 308 阅读 · 0 评论 -
如何把vue文件扔到码云。
三个步骤git add . git commit -m " "git push我使用过程中用到的先在git重新克隆一下你已经写过的文件,比如我刚开始创建了homework(1),那我再git clone 克隆连接, 在homework文件夹里面又有一个homework(1),把homework(1)里面的东西拉到homework(2)里面...原创 2019-07-13 19:52:50 · 143 阅读 · 1 评论