- 博客(82)
- 收藏
- 关注
原创 职场那些事:应对施暴者的智慧
在他们眼中,你的苦恼并不会引起同情,反而可能让你成为施暴者目标的靶子。你需要让施暴者看到你内心的强大,积极寻找内部调动的机会,或者考虑跳槽。经历了这种职场“套路”后,你会发现自己变得更加坚强,面对未来的挑战也不再畏惧。在这种环境下,如果你选择留下,最重要的就是不要激化矛盾,保持表面上的平静。在职场中,有些人用各种手段让你感到难受,让你屈服,甚至适应他们的变态心理。如果你在找工作时感到迷茫,不妨去“打工者联盟”查查,了解更多企业信息。
2024-08-21 10:01:31
231
转载 三国鼎立:ChatGPT、百度文心一言、微软 New Bing
推荐国内可访问chatGPT:ChatGTP:更像是三国中魏国,地大物博用户多。百度文心一言:更像是三国中的蜀国,地理优势好,国内用户超级多。微软的 New Bing:更像是三国中的吴国,有较好的外交,国内国外通吃。
2023-03-22 17:49:17
254
原创 近八成中国程序员起薪过万人民币,你过了么?
具体而言,79%的00后程序员已经脱单,在90至95年之间出生的程序员中,有66%的人处于恋爱或结婚状态。77%的本科毕业生起薪超过1万元,其中74%的00后应届毕业生的月薪在1至3万元区间,只有23%的程序员薪资在1万元以下。一项调查显示,近八成中国程序员本科毕业生起薪过万(人民币,下同,约2000新元),他们跳槽首选智能汽车和芯片行业,此外,程序员婚恋市场抢手,八成00后已“脱单”。在95年至00年出生的程序员中,1至3万元月薪的比例下降至63%,21%的程序员月薪冲到3至5万元。
2022-10-28 13:00:08
499
原创 程序员应该专注技术还是转管理?
很多程序员其实是吃青春饭的,到了35岁之后,别说涨薪了,要是公司垮了,你换个岗位试试?不要过早地放弃编写代码的能力,因为如果你是纯管理者,你会面临一个问题,如果管理者失业了,你怎么办?这是个很现实的问题,你有专业技能,你能写代码,企业最需要这种人,岗位很多。你要是纯管理,开始也说了,每个公司的管理岗位很少,而且大部分都会在自己内部培养。当然,我更推荐你把工作中学到的知识,解决过的问题,通过写文章的方式,发布到网络上。想转管理,虽然门槛没有专注技术那么高,但是,公司里的管理岗位非常少,凭什么轮得到你?
2022-10-28 10:32:12
505
原创 uniapp使用“js-base64“出现问题
最近在uniapp中引用base64报错import { Base64 } from "js-base64/base64"解决办法: 就是将js-base64的版本规定到 "^2.6.4",否则使用高版本会报错
2022-06-13 08:43:14
1729
转载 前端规范方案
关于本文来自:https://juejin.cn/post/7085257325165936648不以规矩,不能成方圆。本人有幸经历了团队的一个过程,在此当做记录供大家参考。本文从以及出发,逐步引申出如何去建立适合自己团队的规范,详细讨论了前端具体涉及到的规范都有哪些,部分小节有具体的配置步骤和操作链接。文中涉及到的所有配置均放在github上的 Demo[1] 中,觉得不错的点个赞 ❤️❤️❤️。下面我们开始吧🏃。规范能给我们带来什么好处,如果没有规范会造成什么后果?这里主要拿代码规范来说。统一代码规范.
2022-06-13 08:40:15
259
原创 web性能权威指南
一,延迟与宽带网站越快,用户的粘性越高网站越快,用户忠诚度越高网站越快,用户转化率越高。二,TCP三,UDP四,HTTP1.0 1.1 2.0五,XMLHttpRequest六,Websocket七,WebRTC
2021-12-17 18:25:05
2792
原创 javascript实现继承
function inherits(clazz, baseClazz) { var clazzPrototype = clazz.prototype; function F() {} F.prototype = baseClazz.prototype; clazz.prototype = new F(); for (var prop in clazzPrototype) {//属性也继承了 clazz.pro...
2021-12-02 16:40:20
167
原创 如何让手动设置input的value时,触发change事件
<input id="input">input.value = 'xxx';// 手动触发change事件input.dispatchEvent(new CustomEvent('change'));
2021-10-28 14:00:50
1665
1
原创 js 实现双击
const dbClick = { time: 0, action: function (callback) { this.time = new Date().getTime() setTimeout(() => { if (new Date().getTime() - this.time < 300) { callback() } }, 300) }}dbClick.action(() => { co.
2021-08-23 10:44:07
426
原创 javascript 多个数组组合成不重复数组组合
function setUserNameCombination(data) { let result = []; Object.keys(data).forEach((key) => { const arrItem = data[key]; if (result.length === 0) { result = arrItem.map(e => ({[key]: e.value})); } el...
2021-08-10 10:22:19
322
1
原创 Blob 下载文件时 type 类型 大全
aac AAC audio audio/aac .abw AbiWorddocument application/x-abiword .arc Archive document (multiple files embedded) application/x-freearc .avi AVI: Audio Video Interleave video/x-msvideo .azw Amazon Kindle eBook format .
2021-04-29 10:18:11
22499
6
原创 鼠标移入时显示滚动条
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><style> .list { heig.
2021-03-31 17:56:35
2533
原创 javavscript while循环遍历树形结构
const treeFilter = (node, action) => { if (!node) { return; } action(node) var stack = []; stack.push(node); var tmpNode; while (stack.length > 0) { tmpNode = stack.pop(); if (!tmpNode) return if (tmpNode.children &.
2021-03-30 13:28:28
526
原创 javascript 遍历树 获取目标路径
function getPath (data, id, cb) { var temppath = []; try { getNodePath(data); } catch (e) { console.log(e, temppath) } function getNodePath (node) { temppath.push(node.id); if (node.id == parseInt(id)) { throw ("获得数据.
2021-03-30 13:24:30
796
原创 qiankun 微前端 Demo
上代码,不多说。qiankun 需要一个基座项目,下面这个就是基座vue项目的main.js的配置。import Vue from 'vue'import App from './App.vue'import router from './router'import store from './store'import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';Vue.us
2020-09-30 12:58:43
890
原创 canvas 小球自由落体
html:<canvas id="canvas" width="600" height="600" >Sorry!</canvas>重点在js:canvas其实就是在画一直重画,时间间隔很短,一点点的改变小球的位置,看起来就像小球在做运动,var ctx;var canvas;var startx=15;var starty=15;canvas = document.getElementById("canvas");ctx = canvas.g...
2020-06-15 21:05:55
281
原创 js 设计模式之策略模式
策略模式的定义是:定义一系列算法,把他们一个一个封装起来,并且是他们可以相互替代。 <form action="http:// xxx.com/register" id="registerForm" method="post"> 请输入用户名:<input type="text" name="userName"/ > 请输入密码:<input...
2020-05-08 14:36:37
147
原创 js 数组转tree
数组数据var list = [ {id:1,pid:0,name:'一级'}, {id:2,pid:1,name:'一级1'}, {id:3,pid:1,name:'一级2'}, {id:4,pid:2,name:'一级1-1'}]// 数组转treefunction composeTree(list = []) { const data = JSON.pa...
2020-01-08 14:49:14
668
原创 css初始化样式
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td { margin:0; padding:0; }body { background:#fff; color:rgb(153,153,153) !important ...
2020-01-08 10:40:43
89
原创 h5移动端rem布局
rem布局就是参考html上的font-size做参照例如html设置font-size:20px; 那么1rem就表示为20px。如何兼容多种手机配置?以ui设计稿为750px 为例document.documentElement.style.fontSize=document.documentElement.clientWidth/7.5+'px'通过js 动态计...
2020-01-07 15:03:28
317
原创 js 利用set实现取交集、并集和差集
let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);// 并集let union = new Set([...a, ...b]);// Set {1, 2, 3, 4}// 交集let intersect = new Set([...a].filter(x => b.has(x)));// set {2, 3}/...
2019-12-23 17:19:29
2597
原创 vue 大文件分片上传
<template></template><script> import axios from 'axios' export default { name: 'YunShuBigFileUpload', props: { fileId: { // 上传 type="file"的id type: Stri...
2019-12-02 10:57:56
2515
原创 js 根据文件内容生成 md5值
'use strict';import '../plugins/js-spark-md5.js'export default function (file, callback, progressFn) { var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSl...
2019-11-30 14:53:33
2111
原创 vue-router动态路由
用户不登陆也可以查看的页面// router index.jsexport const constantRouterMap = [ { path: '/', component: Layout, redirect: '/dashboard', children: [{ path: 'dashboard', component: (...
2019-11-29 10:39:27
1728
原创 vue 长列表渲染优优化
<template> <div ref="list" :style="{height}" class="infinite-list-container" @scroll="scrollEvent($event)"> <div ref="phantom" class="infinite-list-phantom"></div> &...
2019-11-16 16:49:01
2887
原创 js 二分叉遍历
binarySearch(list, value) { let start = 0; let end = list.length - 1; let tempIndex = null; while (start <= end) { let midIndex = parseInt((start + end) / 2); ...
2019-11-16 16:13:23
370
转载 在前端获取上传的excel文件内容
function ReadExcel() { var tempStr = ""; //得到文件路径的值 var filePath = document.getElementById("upfile").value; //创建操作EXCEL应用程序的实例 var oXL = new...
2019-11-14 19:13:28
1020
原创 canvas 绘画
$(function(){ var canvas = $('#canvas')[0];// console.log(canvas); var ctx = canvas.getContext("2d"); //获取绘图环境// console.log(ctx); var num = 1; function palette(canvas,ctx){ //初始化画布内部元素默认样式 ...
2019-08-28 15:14:42
577
1
原创 javascript (AMD,CMD,Commonjs和ES6) 区别
一, commonjs1. 对于基本数据类型,属于复制。会被模块缓存。同时,再另一个模块可以对改模块输出的变量重新赋值。 对于复杂数据类型,属于浅拷贝。由于两个模块引用的对象指向同一个内存空间,因此改模块的值做修改时会影响另一个模块2.当使用require命令加载一个模块时,就会运行整个模块的代码。当使用require命令加载同一个模块时,不会再执行改模块,而是去到缓存里取...
2019-08-28 11:19:30
715
转载 「中高级前端」从多线程来看 Event Loop
引子几乎在每一本JS相关的书籍中,都会说JS是单线程的,JS是通过事件队列(Event Loop)的方式来实现异步回调的。 对很多初学JS的人来说,根本搞不清楚单线程的JS为什么拥有异步的能力,所以,我试图从进程、线程的角度来解释这个问题。CPU计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。进程假...
2019-08-20 16:48:45
107
转载 vue 打包不同的环境
第1步:安装cross-env 1 npm i --save-dev cross-env 第2步:修改各环境下的参数在config/目录下添加test.env.js、pre.env.js。修改prod.env.js里的内容,修改后的内容如下: 1 2 3 4 5 6 'use...
2019-07-26 14:49:39
212
原创 前端js错误监控onerror的总结
最近一直在做前端js错误监控的工作,在不断的打磨和完善中,发现里面还是知识点不少,现在就前端js错误监控做一些笔记和总结我们知道前端js错误监控主要是利用了window.onerror函数来实现,onerror函数会在页面发生js错误时被调用。window.onerror = function(message, source, lineno, colno, error) { ... }...
2019-07-18 18:24:49
4930
1
原创 canvas 制作星星
function Star(x, y, rotation) { this.x = x; this.y = y; this.length = 15; this.scaleX = 1; this.scaleY = 1; this.rotation = rotation; this.angle = Math.random() * 360; this.vx = 0; this.vy =...
2019-07-15 15:41:48
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人