
JavaScript
ZH_TX
这是一个自我记录的博客,意在防止自己遗忘,帮助自己成长的博客
如果能顺手帮助到你,给与你一点帮助,那是我十分乐意的
展开
-
JS伪数组,数组(数组方法大全)
伪数组和数组在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function)。对象与数组的关系(内置方法属性都可以看到)对象:var a={};a __proto__: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isP...原创 2019-11-10 19:40:29 · 909 阅读 · 0 评论 -
面试-重学js-原型链
原型链:原创 2021-05-22 12:32:13 · 104 阅读 · 0 评论 -
前端 使用a标签的下载踩坑
起因: 最近在开发中, 需要用到下载文件的操作, 刚开始直接使用想使用a标签来达到效果, 但是产品下载后,发现文件名不对, 遂使用html5 的download属性,但是在不同源的下, 以及兼容性(谷歌浏览器支持)问题上, 导致这个效果不能很好实现参考其他用法:下载方法1下载方法2后来使用 js 下载本地的临时文件, 在创建 a 标签达到效果function getBlob(url, cb) { var xhr = new XMLHttpRequest(); xhr.open("G.原创 2021-04-19 22:42:32 · 1521 阅读 · 0 评论 -
webpack使用记录
对于webpack 学习路径路程参考: webpack 系列webpack配置模板练习引入vue 与 jq,(希望实现, 多页面应用+jq 的框架,)对于 monment.js 引入时,可以忽略不必要的语言包,并手动引入对应语言;对于一些优化项,可以使用 dllpulgin ,动态链接manifest.json文件使用happypack 进行多线程打包, id ,optimization(chunkCommonPlugin) 多页面,抽离重复引用文件放在一个文件中do while 至少一次原创 2021-03-14 21:24:32 · 137 阅读 · 0 评论 -
js 常用总结封装
1、输入一个值,返回其数据类型function type(para) { return Object.prototype.toString.call(para)}2、数组去重function unique1(arr) { return [...new Set(arr)]}function unique2(arr) { var obj = {}; return arr.filter(ele => { if (!obj[ele]) {原创 2021-03-01 21:53:39 · 234 阅读 · 0 评论 -
vue 自定义指令
参考:自定义指令常用指令vue的自定义指令可以vue.directive 全局注册,可以使用directives 进行局部注册// 注册一个全局自定义指令 `v-focus`Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时…… inserted: function (el) { // 聚焦元素 el.focus() }})//如果想注册局部指令,组件中也接受一个 directives 的选项:-------------原创 2020-11-29 12:39:28 · 198 阅读 · 1 评论 -
js 数组总结 2020-11-28
JavaScript目录Array构造器ES6新增的构造函数方法Array.ofArray.fromArray.isArray数组推导原型方法改变自身值的方法(9个)poppushreverseshiftsort使用映射改善排序奇怪的chrome问题分析spliceunshiftcopyWithin(ES6)fill(ES6)不会改变自身的方法(9个)concatjoinslicetoStringtoLocaleStringindexOflastI原创 2020-11-28 18:52:18 · 228 阅读 · 0 评论 -
vue.config.js 详细配置说明(vue-cli4)
详细说明参考:链接一链接二链接三先按需引入cnpm install --save-dev compression-webpack-plugincnpm install --save-dev image-webpack-loader // vue.config.jsconst path = require('path');const CompressionWebpackPlugin = require("compression-webpack-plugin"); // 开启gzi原创 2020-11-10 22:07:26 · 478 阅读 · 0 评论 -
工作中js遇到一些问题
对后端返回的数据结构做处理:例: 将数组按一定的值来进行分类(略微涉及一点算法操作)参考: 算法或者说找出数组中重复最多的元素原创 2020-11-08 18:57:59 · 146 阅读 · 0 评论 -
关于Vue组件通信的总结
一个比较全而好的总结:写的很不错: 值得我在工作中使用:vue深度总结vue filter,常用函数: filter妙用原创 2020-11-08 18:54:32 · 122 阅读 · 0 评论 -
h5的初始化
vue项目的初始化移动端的的尺寸自适应(pxtorem)移动端点击的300ms延迟原创 2020-09-17 23:13:01 · 619 阅读 · 0 评论 -
小程序登录流程解析
写在前面对于一个应用,基本需要登录后才能使用的功能我们需要有一个登录流程,拿小程序来说吧:小程序登录: 登录wx.login - > 在request请求, 拿到openid示例:import { Sid, AppId, OpenId, RegisterCode } from './storage'import { promisify } from './promisify'import Toast from '../static/vant-weapp/toast/toast';原创 2020-07-19 13:17:04 · 516 阅读 · 0 评论 -
常用正则表达式
export function toast(title){ wx.showToast({ icon:'none', title:title })}//还可以对toast不同状态进行封装export function checkReg(val){ let inviteCodeReg = /^[a-zA-Z0-9]{6,16}$/ if(inviteCodeReg.test(val)){ return true } toast('输入格式错误') return false}原创 2020-07-19 10:52:34 · 196 阅读 · 0 评论 -
[js算法]双向链表的实现
同单向链表的实现只是多了一个prev, 明确指向//双向链表的实现class NodeList{ constructor(rank,name,desc){ this.rank=rank this.name=name this.desc=desc this.prev this.next } showNode(){ console.log(`rank:${this.rank},na原创 2020-06-27 16:43:23 · 237 阅读 · 0 评论 -
[js算法]链表的实现(一)
链表的实现但是没有按照一定的排列顺序就行排列//nodelist类class NodeList{ constructor(rank,name,desc){ this.rank=rank this.name=name this.desc=desc this.next } showNode(){ console.log(`rank:${this.rank},name:${this.name},de原创 2020-06-27 12:38:45 · 376 阅读 · 0 评论 -
[js算法]栈的实现
跟队列的实现大致是一样的队列实现: js实现队列主要元素有属性与方法: 空, 满, 增, 删, (查)展示//栈的实现,// 使用arr模拟class Stack{ constructor(maxSize){ this.maxSize=maxSize this.arr=Array(maxSize) this.top=0 } //判断是否为空 isEmpty(){ return this.to原创 2020-06-27 10:22:09 · 282 阅读 · 0 评论 -
[js算法]队列的实现
关于队列的实现使用数组来进行模拟队列的特征: 先进先出(排队系统)插入端为队尾, (rear), 出口端为队头,(front)由于是循环插入,所以空出一个位置,避免空对与满队无法区别的问题队满:(this.rear+1)%this.maxSize==this.front队空: this.front==this.rear主要还是对showQueue,表示有些难度其中的 队列length: this.front+(this.rear-this.front+this.maxSize)%th原创 2020-06-26 23:12:48 · 192 阅读 · 0 评论 -
前端算法
前端常用算法:原创 2020-06-19 22:24:43 · 227 阅读 · 0 评论 -
vue插件的实现过程(install)以及vue.use()
值得学习的教程:添加链接描述原创 2020-06-17 11:38:31 · 859 阅读 · 0 评论 -
vue-router路由参数的传递
使用vue开发也有一段时间了,但是感觉对于vue的一些使用还是有点生疏,故特此记录一下, 防止自己的遗忘首先在vue实例中,存在两个路由参数: 一个this.$router, this.$route console.log(this.$router, this.$route);打印之后可以看到router:对应的是vuerouter的实例route :对应的所在组件的子路由(home)在VueRouter的 options 中包含了所有路由信息,常可以用在导航的时进行vfor循环,拿到对原创 2020-06-17 10:58:47 · 325 阅读 · 0 评论 -
vue 的生命周期理解
vue生命周期写的比较好的:添加链接描述1.beforeCreate:有关于事件初始化, 以及data数据的观测2.created3.beforeMount对象element的挂载4.mounted5.beforeDestroy对于组件的更新(组件销毁前,组件销毁后)6.destroyed下面详细描绘vue的生命周期<!DOCTYPE html><html lang="en"><head> <meta charset="原创 2020-06-16 21:59:54 · 135 阅读 · 0 评论 -
react的基本文件组成格式(与vue做类比)
import React, { Component } from 'react'export default class Learn extends Component { // constructor(props){ // super(props) // this.state={ // //类似于vue中data(){}, props,必须有上面的super函数 // } // this.handleCl原创 2020-06-15 23:33:17 · 440 阅读 · 0 评论 -
深入相应式变更原理
官网: 相应式变更原理var vm = new Vue({ data:{ a:1 }})// `vm.a` 是响应式的vm.b = 2// `vm.b` 是非响应式的对象: 可以使用vue.set(), 或者this.$set(), 来进行改变数组: 也可以使用set实现, 以及一些变异的数组方法来达到实现...原创 2020-06-15 22:19:27 · 160 阅读 · 0 评论 -
微信小程序的api的一些封装
let api = require('../config/api.js');// 时间戳格式化yyyy-MM-dd HH:mm:ss function fmtDate(obj) { let date = new Date(obj); let y = date.getFullYear(); let m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; let d = date.getDate(); d = d <原创 2020-06-15 19:09:40 · 234 阅读 · 0 评论 -
使用axios的进一步封装
import Vue from 'vue'import Oraxios from 'axios'// Vue.prototype.$axios=axiosexport default function axios(opt){ return new Promise((resolve, reject)=>{ const instance=Oraxios.create({ baseURL:'https://cnodejs.org/api/v1',原创 2020-06-15 17:58:01 · 220 阅读 · 0 评论 -
JS 数组与对象的相互转化
我们首先想到的死办法就是遍历, 拿到数值, 在进行数据类型的重构,但是有没有什么简单的方法,可以完成这个步骤呢??参考: 添加链接描述原创 2020-06-15 11:38:54 · 590 阅读 · 0 评论 -
函数柯里化(闭包)
现在接触了越来越多的东西,但是基础就越来越显得重要了,原创 2020-06-15 11:37:29 · 377 阅读 · 0 评论 -
复杂对象的删除(未完)
underscore 的 without 的函数一个数组中删除多个指定数组元素[1,43,45,657,7,3,2] 删除 ,[1,2,3]//复杂的对象类型, 求交集,并集,差集let arrObj=[{name: "小明", birthday: "12.12", address: "中国"}, {name: "fsda", birthday: "2020-03-30", ad...原创 2020-06-15 11:32:46 · 161 阅读 · 0 评论 -
Ajax的优缺点
这是一篇有关基础的面试相关问题首先ajax的流程AJAX既然是通过浏览器的内置对象XMLHttpRequest来处理异步请求的那我们先来了解下他又哪些方法和属性:注:写在这里的为必选参数或者经常用到的可选参数方法:一、open();解释:发送请求的页面在不刷新的情况能将参数传给一个服务器进行处理, 这个方法就是将这些个参数传送过去参数:1, method:用于指定请求的类型 “GET"或者"POST”2, url:用于请求的地址, 可相对可绝对3, asyncFlag:指定请求方式为同原创 2020-05-21 14:26:08 · 253 阅读 · 0 评论 -
Array from 的使用
介绍: 添加链接描述使用 添加链接描述原创 2020-01-16 22:51:27 · 226 阅读 · 0 评论 -
try...catch的使用场景
// 转换为 JSON 格式(try...catch 的作用在报错的时候,进行其他的操作)$.toJSON = function(anyVal) { try { return JSON.parse(anyVal); } catch (e) { return anyVal; }};...原创 2020-01-15 22:52:42 · 355 阅读 · 0 评论 -
变量对象解构
这篇博客先开个头,对于js的基础,还是需要多加学习,学习借助别人的力量去,大佬们写的东西需要去吸收对象的解构const { log } = console; //console.loglog('hello') /*******************/let test={ foo: 'aaa', bar: 'bbb' }let { foo, bar } = test;foo...原创 2019-12-26 21:27:33 · 208 阅读 · 0 评论 -
函数节流, 防抖(更新中...)
这个也是一个经常会碰到的问题/** * 配置节流函数 * @param {[Function]} fn [要执行的函数] * @param {[Number]} delay [延迟执行的毫秒数] * @param {[Number]} mustRun [至少多久执行一次] * @return {[Function]} [节流函数] */c...原创 2019-12-08 17:27:41 · 223 阅读 · 0 评论 -
Vue @/v-on事件修饰符
https://www.cnblogs.com/tianshug/p/11813331.html原创 2019-12-07 16:53:45 · 405 阅读 · 0 评论 -
JS的一些技巧
随机生成一定的随机数:一条简单的语句搞定,(思路极其巧妙)Math.random().toString(10).substring(3,7)//随机生成4位数原创 2019-12-07 16:46:07 · 135 阅读 · 0 评论 -
JS字符串插值` `
在开发中经常能够看到使用$来进行插值:之前一直不太明白其用法,今天就来学习一下这个用法其实和vue中的插值也是差不多的我们需要联想起来{{}}例:let init='hello world'console.log(`${init}`)这是与{{}}有异曲同工之妙吧, 一个使用两个{ }, 一个使用`` 加上{ },其实理解起来也没有什么难处的;我们经常会用来处理一下在对象中属性名的...原创 2019-12-07 16:44:06 · 4477 阅读 · 0 评论 -
js正则表达式学习中...
js正则表示式这个写的比较好:全面介绍原创 2019-11-30 10:29:37 · 121 阅读 · 0 评论 -
Promise 与async ...await 的使用(更新中...)
Promiseasync await原创 2019-11-16 16:39:34 · 186 阅读 · 0 评论 -
JS常用属性方法汇总(字符串)
string,另外的详见:MDN属性:constructor 返回创建字符串属性的函数length 返回字符串的长度prototype 允许您向对象添加属性和方法方法:number,https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number数组与对象可以自己...原创 2019-11-16 16:33:40 · 162 阅读 · 0 评论 -
函数命名(总结中...)
get… set… is… update… do…invalidate… refresh… init… on… fuck… calc…pop… dpop… push… dpush… re… construct…原创 2019-11-06 18:28:45 · 171 阅读 · 0 评论