javascript
javascript
xiaofei0627
前端开发者 + linux 爱好者。热衷于前端开发技术, 熟悉 Vue,React,微信小程序,webpack,vite,babel,node,linux,nginx 等。
展开
-
Web前端代码规范
Web前端代码规范原创 2023-02-03 09:37:53 · 143 阅读 · 0 评论 -
浏览器中和window相同的全局字段到底有多少个?
浏览器中和window相同的全局字段到底有多少个?原创 2022-09-30 14:52:05 · 1974 阅读 · 0 评论 -
手写 js 的 call,apply,bind
手写 js 的 call,apply,bind/** * https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call * * call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 */Function.prototype.Call = function (target, ...org) { // this 指的是调用的函数 ,这原创 2020-05-11 15:48:57 · 4368 阅读 · 0 评论 -
手写一个自己的 cli 并发布到 npm 上
手写一个自己的 cli 并发布到 npm 上简介:大家平时肯定 vue-cli 或者 create-react-app,只需要敲简单的命令行,就可以生成一个完成的项目,非常好用。由于本人所在公司接的项目较多,每次新建新项目都是拷贝以前的项目代码,好麻烦,而且得删除掉好多没用的代码,心累。于是就想着模仿 vue-cli 写一个简单的创建项目的 cli,这样不是就省心省力了嘛。于是说干就干,自己写了...原创 2019-12-28 18:51:25 · 6129 阅读 · 1 评论 -
手写发布订阅模式 EventEmitter
手写发布订阅模式 EventEmitter1.简介最近发现好多大厂面试题里都有手写发布订阅模式 EventEmitter,原因是 vue 和 react 的非父子组件的通信就是靠他实现的,下面是一个简易版的 EventEmitter。2.代码// 发布订阅模式class EventEmitter { constructor() { // 事件对象,存放订阅的名字和事件 如:...原创 2019-10-22 16:29:15 · 7215 阅读 · 4 评论 -
让 a == 1 && a == 2 && a == 3 输出 true
让 a == 1 && a == 2 && a == 3 输出 true方案一 toString// 对象转换成原始类型的值,算法是先调用valueOf方法;如果返回的还是对象,再接着调用toString方法var a = { value: 1, toString() { return a.value++ }}console.log...原创 2019-10-09 16:09:20 · 4476 阅读 · 0 评论 -
什么是防抖和节流?有什么区别?如何实现?
什么是防抖和节流?有什么区别?如何实现?防抖触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间思路:每次触发事件时都取消之前的延时调用方法function debounce(fn, delay = 300) { let timeout; // 创建一个标记用来存放定时器的返回值 return function(...arg) { c...原创 2019-09-03 18:17:02 · 4455 阅读 · 0 评论 -
js实现一个 new(通俗易懂)
实现一个 new参考 mdnnew 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。new 关键字会进行如下的操作:1.创建一个空的简单 JavaScript 对象(即{});2.链接该对象(即设置该对象的构造函数)到另一个对象 ;( 通俗理解就是新对象隐式原型__proto__链接到构造函数显式原型prototype上。)3.将步骤 1 新创建的对象作为 this...原创 2019-09-03 18:16:33 · 10193 阅读 · 0 评论 -
数组的扁平化,去重,排序
数组的扁平化,去重,排序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组var arr = [ [1, 2, 2], [3, 4, 5, 5, '5' ], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];1.es6解法优点:语法简洁,代码量小缺点:晦涩难懂,兼容性是个大问题Array.from(new Set(arr....原创 2019-09-02 17:43:51 · 4879 阅读 · 0 评论 -
['1', '2', '3'].map(parseInt) 输出什么?为什么?(深度解析)
['1', '2', '3'].map(parseInt) 输出什么?为什么?输出: [1, NaN, NaN]1.map函数和parseInt函数说明:Array.prototype.map()说明,参考mdnvar arr=[]var new_array = arr.map(function callback(currentValue, index, array) { // Ret...原创 2019-09-02 13:03:43 · 6023 阅读 · 0 评论 -
vue 结合element-ui实现pc端高德地图组件
vue 结合 element-ui 实现 pc 端高德地图组件背景:去年由于业务需求写了一个高德地图组件,前段时间重构了下。实现的功能有:自动定位,检索地址提示,点击地图获取地址,添加工具栏,拿到的数据经纬度,地址,名称项目依赖:vue-cli:3.5.3 vue:2.6.10 element-ui: ^2.7.0 等使用步骤1./public/index.html 文件中导入高德地图 ...原创 2019-07-24 10:04:02 · 17558 阅读 · 20 评论 -
vue 项目中添加git hooks以及添加eslint和stylelint
vue 项目中添加git hooks以及添加eslint和stylelintvue 项目中添加 git hooksVue-hooks(钩子) 给vue项目添加ESLint优雅的 git commit 以及 eslint 自动修复代码如何为你的 Vue 项目添加配置 StylelintStylelint自动修复样式css,scss,sass原创 2019-07-16 17:26:11 · 6357 阅读 · 0 评论 -
js取到css样式变量,修改后让它自动运用到css里面去
如下代码,我们点击#div 这个元素改变css样式变量 ,然后其他的p元素的样式也会改变。<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, ...原创 2019-06-06 17:52:31 · 6870 阅读 · 0 评论 -
Javascript如何与Sass,Less,Css之间共享变量?
Javascript如何与Sass,Less,Css之间共享变量?Javascript如何获取Sass,Less,Css设置的变量?jst如何获取Sass,Less,Css设置的变量?vue项目中js如何获取Sass,Less,Css设置的变量?vue-cle3.x项目中js如何获取Sass,Less,Css设置的变量?原创 2019-04-04 17:24:56 · 14275 阅读 · 4 评论 -
js交换变量之重写冒泡排序
1.传统冒泡排序写法。(易于理解,引入了变量)function bubbleSort_1(data) { for (let i = 0; i &amp;amp;amp;lt; data.length; i++) { for (let j = 0; j &amp;amp;amp;lt; data.length - i - 1; j++) { if (data[j] &amp;amp;amp;gt; data[j + 1]) {原创 2019-02-12 16:19:32 · 4485 阅读 · 0 评论