
web前端
前端开发者文档,更多详见我的有道云笔记,这里主要是我的一些面试经验和bug修复
松果Tech
松松笔记经验
展开
-
frontend webstorm plugin:插件推荐
webstorm插件原创 2022-11-28 19:42:05 · 1382 阅读 · 0 评论 -
前端:yarn安装的时候报错解决方法 The platform “win32“ is incompatible with this module
问题:yarn安装的时候报错解决方法 The platform “win32“ is incompatible with this modulefsevents@2.3.2: The platform "win32" is incompatible with this module.解决:输入命令:yarn config set ignore-engines true转载 2022-02-21 16:51:52 · 1823 阅读 · 0 评论 -
js:js复制文本到剪贴板
介绍如果想通过原生js复制文本到剪贴板怎么操作安排执行如下函数function copy(text) { var textareaEl = document.createElement('textarea'); textareaEl.setAttribute('readonly', 'readonly'); // 防止手机上弹出软键盘 textareaEl.value = text; document.body.appendChild(textareaEl);原创 2021-11-17 09:11:49 · 560 阅读 · 0 评论 -
js:浮点数如何保留两位小数来避免误差
转载:https://blog.youkuaiyun.com/m0_46627730/article/details/107886217问题情况例如:20.02 * 3 * 3 = 180.1800000001出现了数据偏差,如果纠正。如何解决Math.round()方法function deal(price){ return Math.round(price *100)/100;}转载 2021-10-23 16:06:45 · 227 阅读 · 0 评论 -
js:函数的链式调用(拼接字符串)
问题详情完善一个函数 functionFunction,并实现链式调用:functionFunction(“a”,“b”)(“c”)(“d”),返回一个函数,函数转换为字符串类型是拼接的字符串:“a, b, c, d”;答案function functionFunction() { let string = ""; //高阶函数的内部变量 string = Array.prototype.slice.call(arguments,0).join(", "); let fn =原创 2021-09-23 09:04:21 · 868 阅读 · 0 评论 -
js:如何监听history的pushState方法和replaceState方法。(高阶函数封装+自定义事件)
出现原因:想要监听路由变化就需要监听history的pushState和replaceState事件,但是原生并没有支持,此时,我们就得自己添加事件监听。解决方法:高阶函数封装自定义事件:const bindHistoryEvent = function(type) { const historyEvent = history[type]; return function() { const newEvent = historyEvent.apply(this, argum转载 2021-09-22 11:56:05 · 3427 阅读 · 1 评论 -
js:倒序链表
测试数据//节点数据结构function node(value,next=null){ this.value=value; this.next=next;}let a=new node(1)let b= new node(2,a)let c= new node(3,b)let d= new node(4,c)//打印链表function printLink(node){ console.log(node.value) while(node.next){原创 2021-08-20 17:57:54 · 445 阅读 · 0 评论 -
js:有一个数组,数组里面存放着n个promise函数,要求这些promise函数顺序执行。
调试数据arrfunction a(){ return new Promise((resolve,reject)=>{ resolve(1); })}function b(){ return new Promise((resolve,reject)=>{ resolve(2); })}function c(){ return new Promise((resolve,reject)=>{ re原创 2021-08-20 17:06:30 · 844 阅读 · 1 评论 -
vscode:vscode怎样关闭输入左括号自动补全?
问题:就是输入一个 toast,然后接下来输入一个左括号,竟然就会自动补全一个vscode自认为合适的推荐方法,比如:TransformStream()我就想输入一个toast(解决:在设置里搜索acceptSuggestionOnCommitCharacter关掉即可!...原创 2021-08-19 15:31:55 · 2601 阅读 · 1 评论 -
前端面试:我的前端面试之路
前言: 我是一名来自非985非211的普通市重点高校的小菜狗,大二的时候莫名其妙的入坑了前端,现在要就业了,即将经历一波又一波的面试,心理还是有点小紧张。不知道要面试多久才能拿到一个offer,但不管怎么样,反正跟面试官也就是一面之缘,冲就对了! 如果努力不一定有成功,那就由我来证明。我把我的面试题分享给大家,一方面希望大家少掉坑,争取一把过,另一方面我也想把我的成败记录起来,既可以自己回顾一下,避免下次掉坑,如果还是拿不到offer,那就没办法了哦,不过至少还可以反驳那些天天灌鸡汤的人。 我原创 2021-03-22 11:17:40 · 183 阅读 · 0 评论 -
前端面试:面试篇
面试前的准备积累大量的面试题(海投)积累大量的面试经验(海投)做过2~3个项目(去实习)形象得体衣着简单干净即可,不用太正式,也不要太怪异不要有卫生问题携带纸质简历一份针对性的准备海投不需要定向投递需要根据该公司的招聘要求,针对性的做一点准备面试的常见问题尽量把面试变成聊天,回答问题时尽量留出可继续聊的空间始终记住以下几点:并非所有问题都有标准答案并非所有问题你都必须知道,面试官并没有这样的期望对于自己知道的问题,回答经典详细专业对于自己不知道的问题,先思原创 2021-04-01 21:19:49 · 1205 阅读 · 5 评论 -
前端面试:面试流程
面试流程大约一分钟的自我介绍对你的自我介绍进行挖坑对你的简历中的项目进行挖坑对你的简历中的专业技能进行挖坑做几道算法题你还有什么要问的吗?原创 2021-04-07 10:59:10 · 298 阅读 · 0 评论 -
前端面试:非技术类问题
## 面试内容及我觉得的应答技巧### 1.你有自己的博客或者github的地址吗?### 2.你觉得你做的最有意义的项目是什么?### 3.一分钟的自我介绍**有条理,引人入胜,然后埋坑,凸显与前端的匹配度匹配度**### 4.你有没有看过什么书籍?### 5.你对未来有什么规划吗?### 6.你是通过什么渠道获取一些科技新闻的?### 7.你有和团队合作做过一些项目吗?### 8.面试结束了,你还有什么要问的吗?#### 8.1关于实习,公司有宿舍安排吗?### 9.我看到你做原创 2021-03-21 16:04:55 · 791 阅读 · 0 评论 -
前端面试:半技术类问题
这部分的问题一般是在技术面试中提出的,它主要是考察你是否具有:开放的眼界,持续学习的能力。这些东西不会对面试又太大影响,但还是要提前了解文章目录问题和解答推荐:1.你有自己的博客或者github的地址吗?2.你了解过其他前端的技术吗?vue、React、angular就不用说了。问题和解答推荐:1.你有自己的博客或者github的地址吗?有就有,没有就没有,这个没有技巧。介绍的话就说出地址,然后简单介绍一下写了什么。我的:写博客的话我一般是写在优快云当中,里面主要积累了我在学习中遇.原创 2021-04-08 11:23:47 · 136 阅读 · 0 评论 -
js:如何实现双击事件
思路设置一个全局变量clock=0;每次调用这个方法把clock++,然后开启一个setTimeout为500毫秒,到时间后把clock清零;然后在这之外判断,if(clock==2){执行相应操作};具体代码:btn.onclick = function (e) { e.preventDefault(); cloc++; setTimeout(() => { cloc = 0; }, 500) if (cloc ==原创 2021-07-20 18:14:06 · 7349 阅读 · 0 评论 -
前端bug:audio/vidio在谷歌浏览器中不能自动播放?
Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first.原因Chrome这样做的目的是为了防止开发者滥用自动播放功能而对用户产生骚扰。只允许用户对网页进行主动触发后才可自动播放音频和视频,而禁止了自动播放。解决方法1.设置为静音audio.muted=true;2.之后手动解除静音audio.muted=false;...原创 2021-03-28 09:35:36 · 1155 阅读 · 0 评论 -
前端bug&npm报错:npm ERR! Refusing to install package with name “gulp“ under a package
解决方法:检查package.json下的name字段是不是项目名字和你安装的那个包名字相同了,如果一样就会报那个错,把项目名字改成和你安装不冲突的名字原创 2021-03-19 11:16:34 · 214 阅读 · 0 评论 -
less:如何很简单的自动编译less文件
何为简单直接使用vscode编译器使用安装easy less插件新建less文件ok,会自动在当前less文件目录下编译成css文件easy less配置 "less.compile": { "out": "songsong/css" //输出配置,相对于less文件的路径 },...原创 2021-06-09 11:51:23 · 555 阅读 · 0 评论 -
js:防抖与节流
节流与防抖:时间到了一定程度才能执行节流function throttle (handler,wai){ var lastTime=0; return function(e){ var nowTime=new Date().getTime(); if(nowTime-lastTime>wait){ handler.apply(this,arguments); lastTime=nowTime; }原创 2021-04-15 20:53:52 · 110 阅读 · 0 评论 -
js:函数柯里化
函数柯里化:把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数的技术。举个例子// 普通的add函数function add(x, y) { return x + y}// Currying后function curryingAdd(x) { return function (y) { return x + y }}add(1, 2) // 3curryingAdd(1)(2)原创 2021-04-15 20:48:37 · 76 阅读 · 0 评论 -
js:纯函数之深度克隆
文章目录纯函数:深度克隆:思路:完整代码纯函数:不依赖、不修改外部作用域;深度克隆:思路:1.遍历对象: for (prop in origin) { if (origin.hasOwnProperty(prop)) { //过滤继承的属性 }}2.用typeof判断是原始值还是引用值if (origin[prop] != null && typeof (origin[prop]) == 'object')2.1.如果是原始值,直接赋值 target[p原创 2021-04-15 20:39:56 · 174 阅读 · 0 评论 -
js数组:乱序数组
1.直接打乱数组 function randerArr(arr) { return arr.sort(() => Math.random() - 0.5); }2.对一个数组进行乱序排序,要求每个元素不会落到原来的位置,且落到其他位置的概率相同。思路:假如这个数组的长度是10,那就遍历每一个元素,生成一个0-9的随机数,判断这个随机数是不是现在这个索引,如果是就再随机一次直到不是现在这个索引。得到这个随机数后与随机数位置的数组位置交换,就这样遍历数组一次就打乱了。但是这种思路还是原创 2021-03-29 08:21:18 · 1192 阅读 · 0 评论 -
js字符串:去掉字符串中的空白字符
newstr= str.replace(/\s/g, "");原创 2021-03-28 20:19:34 · 120 阅读 · 0 评论 -
js数组:统计数组每个元素的个数
1.返回key-value数据结构{ "aaa":"lang", "bbb":"yun", "ccc":"song"}特点:简单易见,但只能封装原始值数组代码:function countArr(arr) { var hash = {}; arr.forEach((element) => { if(!hash[element]){ hash[element]=1; } else{ hash[原创 2021-03-28 20:15:08 · 7490 阅读 · 0 评论 -
js数组:数组去重
三种要去重的数组类型var obj1 = { ky: 0 }; var obj2 = {}; var obj3 = {}; //arr1:全引用型 var arr1 = [obj1, obj2, obj3, obj2, obj1, obj1, obj2, obj3, obj2, obj1]; //arr2:普通型 var arr2 = [1, 2, 3, 2, 1, 1, 2]; //arr3,引用型但json后可以区分 var arr2 = [obj1, ob原创 2021-03-28 19:54:12 · 112 阅读 · 0 评论 -
vscode:开发技巧
@[toc]## 如何通过光标移动实现多选或多定位#### 多选 ctrl+shift+鼠标点击:多选#### 多定位 alt+鼠标 :一个一个定位 alt+shift+鼠标:一次下点击定位多列## 如何在函数前面自动补全注释 打印出/** +回车原创 2021-03-25 14:45:14 · 76 阅读 · 0 评论 -
vscode:开发必备插件
前端VScode常用插件1.Markdown Perview Enhanced在vscode中编写Markdown文件相关配置:设置》搜索markdown pre>勾选Markdown-preview-enhanced: Enable Critic Markup Syntax》F1配置markdown preview enhanced customize css(控制预览里面的样式)》F1配置markdown preview Extend parser(加一些额外的脚本)2.Auto Ren原创 2020-12-14 19:54:49 · 252 阅读 · 0 评论