自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 了解NaN,判断该值是否为NaN

要判断一个值是否为 NaN,可以使用 Number.isNaN() 或 isNaN() 来最清楚地确定一个值是否为 NaN ——或者,因为 NaN 是唯一与自身不相等的值,所以你可以执行类似 x!isNaN() 和 Number.isNaN() 之间的区别:如果当前值是 NaN,或者将其强制转换为数字后将是 NaN,则前者将返回 true。失败的数字转换(例如,显式转换,如 parseInt(“blabla”)、Number(undefined),或隐式转换,如 Math.abs(undefined))

2023-08-03 11:38:41 2765

原创 图片文件上传并展示(fileReader)

【代码】图片文件上传并展示(fileReader)

2023-08-03 10:57:00 149

原创 DIY文件上传(修改原始input:file)

隐藏 input:file ,在页面创建 button 和 span 用于展示文件上传按钮和文件上传文本,在点击 button 时调用 input:file 的点击上传事件触发文件上传。

2023-08-01 20:34:08 165

原创 不推荐 v-if 和 v-for 同时使用

v-for和v-if 同时写在一个标签会报错因为v-for会比v-if的优先执行实质是v-for优先执行,会创建对应的dom节点,如果v-if为false,会删除这个dom节点;这样创建后再删除,会造成页面卡顿,影响性能。

2023-02-09 15:55:23 205

原创 数组必会常用方法

map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。返回一个元素都是回调函数的返回值的新数组。filter() 过滤数组,返回一个通过条件的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。flat() 方法会按照一个可指定的深度递归遍历数组,返回一个包含将数组与子数组中所有元素的新数组。unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

2022-10-22 17:08:22 262

原创 数组方法reduce

参数:callbackfn :reduce 对于数组中第一个元素之后的每一个元素,按升序各调用一次回调函数。initialValue(可选) : 作为第一次调用 callback 函数时参数 previousValue 的值。若指定了初始值 initialValue,则 currentValue 则将使用数组第一个元素;若没有指定初始值initialValue。 则previousValue 将使用数组第一个元素,而 currentValue 将使用数组第二个元素。

2022-10-22 17:04:05 236

原创 JS 作用域 (链)

作用域 & 作用域链作用域:就是一个变量可以使用的范围。 js中首先有一个最外层的作用域,全局作用域; js中可以通过函数来创建一个独立作用域称为函数作用域也叫局部作用域,函数可以嵌套,所以作用域也可以嵌套; es6中新增了块级作用域,在{} 内就叫块级作用域,仅限let const作用域链:自由变量的向上级作用域一层一层查找,直到找到最高全局作用域,就形成了作用域链。变量提升(预解析)var声明的变量,function声明的函数存在变量提升let const 不会变量提升

2022-09-14 00:35:21 95

原创 React 组件通讯 (pubsub-js 发布订阅 依赖)

在 react 中传统的组件通讯写法繁琐,对于兄弟组件传值需要外层父组件接过来再传过去通过使用第三方依赖:pubsub-jsyarn add pubsub-jsnpm install pubsub-js通过,订阅 ----> 发布 的模式实现组件之间的通讯,以及任意组件通讯。react 组件Aimport React, { Component } from 'react'import PubSub from 'pubsub-js' // 引入 pubsub-js 第三方依赖e

2022-04-22 16:33:40 1272 1

原创 React 对组件props限制 ( prop-types 依赖)

在 React 项目中对组件参数限制。下载 PropTypes 依赖包 yarn add prop-types 或 npm i prop-types 在模块中引入并使用 import PropTypes from 'prop-types'在类组件中推荐写法 ( 代码块统一 )import React from "react";import PropTypes from 'prop-types'; // 引入依赖class Comp extends React.Component {

2022-04-14 17:18:09 1638 2

原创 React 类组件 this 写法

先看一段代码,其 this 指向需要修正import React from "react";class Comp extends React.Component { state = { a: 1 } handleClick() { console.log(this, 'handleClick'); // undefined 'handleClick' this.setState({ a: this.setState.a + 1 }) // 报错 Cannot read pr

2022-04-12 17:52:28 1031 1

原创 斐波那契数列

斐波那契数列是由意大利数学家Leonardo Pisano(又名斐波纳契)发明的。这个数列从第3项开始,每一项都等于前两项之和如下:1,1,2,3,5,8,13,21,34,55,89,144...OK,现在我有一个问题,要求知道第50项是多少?方法:// 1.使用 for 循环 let arr = [1, 1, 2, 3] for(let i = arr.length; i < 50; i++){ arr.push(arr[arr.length - 1] + arr

2022-03-28 00:05:01 549

原创 数组必会方法避免回去种地

JS必会的数组方法,避免回去种地!

2022-02-18 16:46:47 305

原创 类数组转数组

类数组(arrayLike):也叫伪数组,长的跟数组一样,有索引,有length ,每个索引都有对应值,但是无法使用数组方法。

2022-02-18 15:51:51 238

原创 手写事件总线 eventBus

目录了解手撕了解通常在 vue 组件中实现组件之间的传参访问,相比应该有接触过事件总线 $bus 或者叫 eventBus , 一般我们是在 main.js 中初始化一个 vue 实例,并挂载原型上。一般是这么写// mainVue.prototype.eventBus = new Vue()// comp1this.eventBus.$emit('handle','value')// comp2 this.eventBus.$on('handle', ...

2022-01-06 18:42:20 912 1

原创 图片懒加载 lazyload

目录了解代码效果了解图片懒加载是一种网页性能优化的方法,能够极大的提升用户的体验效果,现代一张图片都有可能是几兆的问题,加入100张图片你进入页面难道就直接全部请求,这得要多卡,所以使用图片懒加载的形式,只请求可视区域的图片链接资源,这样能够大幅度减少请求次数从而做到体验优化。还有一种说法就是图片不直接进行展示,而是在请求途中通过一个 loading 的加载图片进行等待,并最终直接让图片直接完全展示,不用等待缓慢的一步步展示。代码 // window.innerHeight 获取视口显示区

2022-01-04 15:55:24 794 1

原创 下拉刷新上拉加载

目录原理实现效果原理想必使用过微信开发工具的应该都接触过上拉加载下拉刷新配置。原理呢就是通过根据当前刚开始触碰的屏幕垂直y轴距离和滑动时所触碰垂直y轴距离,从而来判断是上拉,下拉。实现使用的vue2 封装的组件,js大致思路是一样的父级组件<template> <div class="home"> <pull-down-refresh :showLoadingRefresh="true" :PullDownSize="100

2022-01-04 15:02:41 8907 3

原创 git cz

git czgit cz 相当于是一个对于 git commit 的提交命令的加强版,使 git commit 规范化提交。首先需要安装 Commitizen (Commitizen是一个格式化commit message的工具,git cz 是依赖于Commitizen )npm install -g commitizen上述安装出错,可尝试通过以管理员身份运行 Windows PowerShell 安装。安装changelog,生成changelog的工具npm install -g c

2021-12-13 16:22:40 4972 1

原创 let 声明的变量哪去儿了

首先我们能够在检查中 Sources 中明显的看到,再声明变量之前,a b c 都是存在的(默认一开始都是 undefined ),只不过 var 声明的 a 是在 Global (也就是 Window ) 中声明的相当于是 window.a = 1 ,而这个 let 所声明的是在和 Global ( Window ) 同级下的 Script 中,所以使用 let 声明的 window 是访问不到的(undefined),通过上述的 alert 例子直接访问 alert方法访问的则是 let 声明的,使用

2021-12-11 22:33:33 844

原创 JS 冒泡排序

冒泡排序比较两个相邻的值,若后面的比前面的小,则将小的元素排到前面。依次循环直到结束。代码function sortHandle(arg){ // 冒泡 let result = JSON.parse(JSON.stringify(arg)) // 拷贝一份儿,互不干扰 for(let i = 0; i < result.length; i++) { // 第一次循环,从0开始到结束,循环length次 for(let j = 0; j < result.length - i

2021-12-11 21:44:11 600

原创 typescript 泛型

目录定义使用定义泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。泛型=> 泛指所有类型使用// 这是我们平时声明数组let arr1:number[] = []arr1.push(1)// 这是使用了泛型声明let arr2: Array<number> = [1,2,3,4];// 这是一个普通的ts Functionfunction createArr(length:number,value

2021-11-14 20:24:12 813

原创 VUE项目报错 : Syntax Error: Error: Node Sass version 6.0.1 is incompatible with ^4.0.0.

报错信息图图片说的是node sass 版本不行 incompatible adj.不相容,矛盾的安装这个 npm install sass-loader@10.1.1卸载一下node-scss再安装 npm install node-sass@4.14.1OK了主要还是scss版本问题,安装相对应的版本就行了...

2021-09-02 14:06:03 4335 4

空空如也

空空如也

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

TA关注的人

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