自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 对象指针问题

let a = {n:1}let b = a/** * 1. a.x 是从原有的对象里重新声明了一个x属性此时为undefined * 2. 赋值运行符从右往左执行,首先声明了一个新对象为 {n:2}, 并把新对象指针赋值给 a 此时原有的对象仍然未b变量持有 * 3. 赋值a.x 就是给原有对象 的 x属性赋值了 一个 新对象的指针 */a.x = a = {n:2} console.log(a); // {n:2}console.log(b); // {n:1,x:{n:2}}

2021-07-21 10:19:42 138

原创 如何限制其他iframe加载自己的网站

解决方案:一、设置http请求头的X-Frame-Options:X-Frame-Options可以设置三个值1、DENY 如果页面包含在框架中,则阻止呈现页面2、SAMEORIGIN 与上面相同,除非页面与顶级框架集所有者属于同一域3、ALLOW-FROM uri 页面只能被制定的uri嵌入到iframe 或 frame中node 做中间层配置引入helmet 第三方node库 https://www.npmjs.com/package/helmet引入方式: npm install

2021-07-19 10:47:54 1428

原创 JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,使得以下程序能正确输出

字节跳动前端面试题/** * 题目: JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,使得以下程序能正确输出 * 条件: 只能修改Sheduler **/class Scheduler { constructor(){ this.cache = [] // 缓存任务数据 this.task = [] // 当前执行任务队列 this._max = 2 // 最大并发任务 } add(promi

2021-07-18 19:19:06 2772

原创 Safari兼容问题

1.日期转换我们通用的时间格式一般是2021-06-22,这种格式在Safari下进行new Date ()转换是不支持的,要修改为2021/06/22

2021-06-22 10:31:14 221

原创 判断 if(a==1 && a==2 && a==3)

if(a==1 && a==2 && a==3)const a = { i: 0, toString: function() { this.i++ return this.i }}const a = { i: 0, valueOf: function() { this.i++ return this.i }}console.log(a == 1 && a ==2 && a ==

2021-06-08 11:21:51 416

原创 JavaScript判断括号是否闭合

// 判断标签是否闭合function isCloseed(params, keyCollection = [['{','}'],['[',']'],['(',')'],['<','>']]) { const array = params.split(''); // 过滤掉不符合要求的单括号 keyCollection = keyCollection.filter(item=> Array.isArray(item) && item.length === ..

2021-06-08 11:19:14 752

原创 vue-cli3.0指定使用的vue源文件是哪个

module.exports = {lintOnSave: true,configureWebpack:{resolve: {alias: {‘vue’: ‘vue/dist/vue.esm.js’ // 用 webpack 1 时需用 ‘vue/dist/vue.common.js’}}},devServer: {overlay: {warnings: true,errors: true}}}

2021-05-18 17:53:17 142

原创 实现无重复字符的最长度字符串 JavaScript

function noRepeatString(string) { let str = '' let arr = [] for (let i of string) { if (str.indexOf(i) < 0) { str += i } else { arr.push(str.length) str = i } } arr.push

2021-05-14 17:50:43 97

原创 vue 自定义指令 input框计算输入字数

export default { install(vue) { vue.directive('limit-count', { bind: function(el) { vue.nextTick(() => { el.style.position = 'relative' const target = el.getElementsByTagName('input')[0] || el.getElementsByTagName

2021-05-11 19:02:43 1236

原创 base64 生成file 对象

base64toFile(b64Data, filename, contentType) {let sliceSize = 512;let byteCharacters = atob(b64Data);let byteArrays = [];for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { let slice = byteCharacters.slice(offset, offset

2021-05-11 18:59:22 318

原创 本地图片生成base64

/** * @description: 获取本地图片base64 * @param {Object} file blob [input:file].files[0] * @return { String } base64 */getLocalFileBase64 = file => { return new Promise((resolve, reject) => { const fileReadr = new FileReader() fil

2021-05-11 18:57:54 132

原创 多维数组扁平化

// 数组扁平化 arr 多维数组Arrayflat(arr){ const currentArr = [] arr.forEach(element => { if(Array.isArray(element)) { currentArr.push(...this.Arrayflat(element)) } else { currentArr.push(element) } }); return currentArr

2021-05-11 18:55:47 71

原创 数组对象去重

/** * @description: 数组对象去重 * @param {Array} obj 需要去重的数组对象 * @param { String } key 去重的依靠值 * @return {Array} 去重后的数组 */ arrayReport(obj, key) { const exits = {} const noReport = obj.reduce((target, next) => { !exits[next[ke..

2021-03-19 10:06:44 78

转载 绝对忽略的vue技巧

绝对忽略的vue技巧转自: https://zhuanlan.zhihu.com/p/150365267

2021-03-06 15:54:16 482

原创 判断对象是否是空值

对象空值处理function isEmpty(obj) {if(!obj) return new Error(‘请传入正确的值’) // 没有传入参数处理if(Object.prototype.toString.call(obj) !== ‘[object Object]’) return new Error(‘应为对象类型’) // 传入参数不是对象类型的return JSON.stringify(obj)=== ‘{}’}应用console.log(isEmpty([])); //应为对

2021-02-14 14:05:51 184

原创 node做中间层如何进行文件上传

如今越来越多的前端项目加入了node做中间层,进行一些请求的拦截,转发等,但是在进行ajax进行文件上传的时候比如无法直接获取客户端传递过来的formdata数据。node层请求库我使用的是node-fetch

2021-01-23 10:32:06 476

原创 axios封装

axios.js```handlebars```handlebarsimport axios from 'axios' // 引入axiosimport Vue from 'vue'import { errorStatus } from '@/utils/api/err'import { getToken } from '@/utils/auth'import { Loading } from 'element-ui'import _ from 'lodash'let loadingI

2021-01-08 16:23:08 304

原创 前端 AES与RSA加解密

安装npm install crypto-js --savenpm install jsencrypt --save核心代码import { JSEncrypt } from 'jsencrypt'import CryptoJS from 'crypto-js'class Decipherer { constructor() { // rsa this.jsEncrypt = new JSEncrypt() // aes this.key = '' /

2020-11-27 10:00:51 497

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除