![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分享
我是个麻瓜。
凯特霖
这个作者很懒,什么都没留下…
展开
-
了解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 · 3004 阅读 · 0 评论 -
图片文件上传并展示(fileReader)
【代码】图片文件上传并展示(fileReader)原创 2023-08-03 10:57:00 · 181 阅读 · 0 评论 -
DIY文件上传(修改原始input:file)
隐藏 input:file ,在页面创建 button 和 span 用于展示文件上传按钮和文件上传文本,在点击 button 时调用 input:file 的点击上传事件触发文件上传。原创 2023-08-01 20:34:08 · 210 阅读 · 0 评论 -
不推荐 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 · 234 阅读 · 0 评论 -
数组必会常用方法
map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。返回一个元素都是回调函数的返回值的新数组。filter() 过滤数组,返回一个通过条件的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。flat() 方法会按照一个可指定的深度递归遍历数组,返回一个包含将数组与子数组中所有元素的新数组。unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。原创 2022-10-22 17:08:22 · 603 阅读 · 0 评论 -
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 · 1324 阅读 · 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 · 1716 阅读 · 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 · 1058 阅读 · 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 · 576 阅读 · 0 评论 -
数组必会方法避免回去种地
JS必会的数组方法,避免回去种地!原创 2022-02-18 16:46:47 · 330 阅读 · 0 评论 -
类数组转数组
类数组(arrayLike):也叫伪数组,长的跟数组一样,有索引,有length ,每个索引都有对应值,但是无法使用数组方法。原创 2022-02-18 15:51:51 · 299 阅读 · 0 评论 -
手写事件总线 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 · 923 阅读 · 1 评论 -
图片懒加载 lazyload
目录了解代码效果了解图片懒加载是一种网页性能优化的方法,能够极大的提升用户的体验效果,现代一张图片都有可能是几兆的问题,加入100张图片你进入页面难道就直接全部请求,这得要多卡,所以使用图片懒加载的形式,只请求可视区域的图片链接资源,这样能够大幅度减少请求次数从而做到体验优化。还有一种说法就是图片不直接进行展示,而是在请求途中通过一个 loading 的加载图片进行等待,并最终直接让图片直接完全展示,不用等待缓慢的一步步展示。代码 // window.innerHeight 获取视口显示区原创 2022-01-04 15:55:24 · 805 阅读 · 1 评论 -
下拉刷新上拉加载
目录原理实现效果原理想必使用过微信开发工具的应该都接触过上拉加载下拉刷新配置。原理呢就是通过根据当前刚开始触碰的屏幕垂直y轴距离和滑动时所触碰垂直y轴距离,从而来判断是上拉,下拉。实现使用的vue2 封装的组件,js大致思路是一样的父级组件<template> <div class="home"> <pull-down-refresh :showLoadingRefresh="true" :PullDownSize="100原创 2022-01-04 15:02:41 · 8974 阅读 · 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 · 5017 阅读 · 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 · 856 阅读 · 0 评论 -
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 · 611 阅读 · 0 评论