- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 JS 排序学习记录
分割操作:通过一趟排序,将待排序序列分割成两部分,使得左边的元素都小于等于基准元素,右边的元素都大于等于基准元素。在分割过程中,可以使用两个指针(称为i和j),分别从序列的两端开始,然后向中间移动,直到i遇到大于基准元素的元素,j遇到小于基准元素的元素,然后交换这两个元素,重复这个过程直到i和j相遇。在合并操作中,需要创建一个临时数组来存储合并后的有序序列,然后按照顺序从两个子序列中选择较小的元素放入临时数组中,直到一个子序列中的所有元素都被选择完毕,然后将另一个子序列中剩余的元素依次放入临时数组中。
2023-12-02 12:28:07
293
原创 react及相关面试问题汇总
React 组件是一段可以 使用标签进行扩展 的 JavaScript 函数。有两种声明方式,函数式组件和类组件。现在常用的是函数式组件。JSX是 JavaScript 语法扩展,可以让你在 JavaScript 文件中书写类似 HTML 的标签。JSX 规则1. 只能返回一个根元素2. 标签必须闭合3. 使用驼峰式命名法给 大部分属性命名!
2023-11-12 21:36:52
862
1
原创 rt-hwwb前端面试题
目录1、是否有封装过fetch。了解axios和ajax源码资源吗。2、react hooks 如何封装的,如何使用的,原理。3、vue.nextTick 原理4、原型和原型链5、ES6有哪些新特性。箭头函数和普通函数的区别是。6、HTTP协议有哪些规范。7、vue2 组件通信方式有哪些。8、样式兼容,移动端和PC端。9、了解vuex 原理吗?如何设计一个差不多的呢。10、echarts 原理。11、less、sass、css 有哪些区别12、做过那些项目优化13、封装过那些组件14、如何判断一个对象为空。
2023-11-12 17:43:10
602
原创 hover标签失效的一些问题
有时候标签重叠太多层了 导致hover时候没反应 或者有时候只有部分反映的时候 可以试试position:relative 这个属性来实现。因为w
2021-06-06 17:08:59
316
原创 git生成SSH密钥和github的绑定
一、首先在本地电脑上面配置基本用户信息git config --global user.name "用户名"git config --global user.email "邮箱地址"用户名和邮箱地址可以和github的一致。二、查看自己的配置信息是否生效。git config --global --list三、生成密钥ssh-keygen -t rsa -C "邮箱地址"与上述邮箱保持一致,执行命令后 连续回车三次 四、打印生成的密钥cd ~/.sshcat
2021-02-21 11:16:05
689
原创 react hook整理 自己的理解
1.useState通过创建一个state状态值XXX,通过setXXX来改变状态值。XXX可以直接使用,可以创建多个状态值。state可以任何数据类型。同时setXXX必须是返回新的一个值这样才可以渲染成功。 // 定义 const [count, setCount] = useState(0) const [obj, setObj] = useState({ name: "张武" }) return (<> <h3>UseState钩子 &.
2021-01-01 15:21:16
230
原创 找工作前端常见面试真题汇总
10月23日至少写出三种跨域的方法,并说明优缺点。 transition和animate有什么区别,如何提高CSS动画性能。 写出一个今天是周几的函数。 如何判断两个非负整数是否为0. 请阐述jsonp的作用和原理。 call,apply和bind的作用和区别。 假设一个计算函数,里面封装了比较复杂的计算过程,如何提高计算效率。 new操作符具体做了什么。 如何使用vue实现一个动态加载toast组件,写出大概思路。 如何提高vue首屏渲染性能。 前端如何防范xss攻击。 如何在j
2020-10-23 18:07:40
192
原创 数组的方法总结,待续
1.Array.isArray()用于确定传递的值是否是一个Array。let res = Array.isArray("hello");console.log(res); // falseconsole.log(Array.isArray(["1", 2])); // true2.Array.from()方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。// 只有其中传递的是一个字符串才可以实现转换let res = Array.from("hello"...
2020-09-25 10:00:33
134
原创 错误In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
在渲染数据的时候,有时候会报错Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.找了很久都没发现哪里错了,总说我试图破坏不可迭代实例的结构无效。为了具有可迭代性,非数组对象必须有一个[Symbol.iterator]()方法。所以在通过网络请求获取数据的时候,给渲染数据的对象赋值时候.
2020-09-24 20:49:36
42154
1
原创 快速初始化一个node项目
快速初始化一个node项目1.初始化项目,生成一个package.json文件:npm init -y2.然后在所在文件夹写一个入口文件app.js:3.基于express的依赖,所以需要再安装express,生成一个node-moudles文件夹:npm install express4.然后在app.js文件中,搭建服务,处理指定请求;const express = require("express");const app = express();// 处理请
2020-09-24 08:46:21
4339
原创 常见的vscode插件使用记录
微信小程序的vscode插件:wechat-snippet 代码提示 wxapp-helper 新建页面 minapp wxml高亮显示
2020-09-14 20:50:34
318
原创 在vue中使用Swiper实现自动轮播效果那些坑
首先是在安装vue-awesome-swiper包之后,引入import'swiper/css/swiper.css'文件后一直报错,我首先以为我要安装这个文件........就很无语,根据我查资料发现,根据不同的swiper版本不同,引入的CSS文件也不一样,然后我需要引入import"swiper/swiper-bundle.css" 文件就就不会再报错了。没有这个错误之后我就准备开心的写轮播了,然后发现,轮播实现之后,就是不出现分页条,也不能实现自动轮播!!!!!!我太难了使用写个...
2020-09-08 09:26:39
2569
5
原创 element框架时间日期组件date-picker的使用
element框架中的datePicker时间日期的组件的使用。主要是需要将时间戳和字符串的相互转换。<el-date-picker v-model="ruleForm.createTime" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59
2020-09-06 16:08:37
2501
原创 框架vue常见问题总结
1.为什么要选vue?与其他框架对比的优势和劣势? vue是基于数据驱动的框架,不需要操作DOM数结构,只需关注视图的数据渲染。 Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API;Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。核心是一个响应的数据绑定系统。vue两大特点:响应式编程、组件化vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、视图、数据和结构
2020-09-06 15:41:37
841
原创 git远程仓库操作
git远程仓库操作1.首先需要在GitHub上创建一个连接,生成SSH Key。本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息,通过Git命令生成SSH Key:ssh-keygen -t rsa -C "youremail@example.com"然后会生成一个文件如图所示:2.Github设置。打开github网站并登陆,登陆后将用Git生成的SSH Key粘贴到指定的位置。步骤如图:2.1Github用户中心设置2.
2020-09-06 15:14:49
285
原创 常见js资源的下载地址
开发版本:https://cn.vuejs.org/js/vue.js生产版本:https://cn.vuejs.org/js/vue.min.js区别:开发版本包含完整的警告和调试模式,生产版本删除了警告。在开发时候最好使用开发版本,不要使用压缩版本,不然就失去了所有常见错误的相关警告。...
2020-08-27 10:01:03
3844
原创 es6+Webpack+nodejs常见面试题总结
es6+Webpack+nodejs常见面试题总结1.call() 函数和 apply() 函数的区别和作用?2.箭头函数有哪些特性?3.let的应用场景。4.箭头函数中this的指向。5.我们如何解决函数传参顺序不一致的问题。6.使用 promise 封装ajax.。7.async 和 await 的基本用法。8.简单介绍一下promise。9.如何实现对象深拷贝。10.ES6 如何实现继承, ES5 如何实现。11.js继承方式及其优缺点。...
2020-08-13 21:58:51
698
原创 js实现tab栏类的封装
首先简易实现Tab栏样式:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>01-tab栏类</title> <style>
2020-08-09 15:47:45
506
原创 nodejs对json文件的读写
需要反复写入数据到json文件中的时候,要以对象数组的方式写入文件中;写入数据时候,数据需要以字符串存入,因此需要使用JSON.stringify();方法来讲数据转成字符串;而从文件中读取数据之后,需要将buff流通过toString()转换成字符串,然后将通过JSON.parse()方法字符串转成对象数组,添加新数据;再重新写入文件;代码如下: let data = []; // 文件的内容 let obj = req.query; // 转成字符串 存入 user.jso
2020-08-04 18:56:02
1534
原创 es6新增新特性简要总结
es6新增新特性简要总结es6简介 es6是在2015年6月正式颁布的新标准,es6基本上实现了所有ECMAScript 规范,以后每年的6月都会发布新版本,但改动不大。let 变量使用let 关键字来申明的变量拥有以下特点: 作用域不同: let定义的变量是块级作用域 ;var定义的变量是函数作用域[局部的], 但在if、for等定义的变量是全局的。 同一个变量声明的次数:在同一个作用域中同一个变量let只能声明一次,而var可以多次声明;因此,let声明的变量可以避免全局变量
2020-07-30 22:20:46
1268
原创 js对象的浅拷贝和深拷贝的实现方法
一、浅拷贝浅拷贝:只拷贝一层数据;复杂数据只是拷贝地址;注意:当对象中还存在复杂数据类型的时候,只会拷贝地址引用,所以新对象对其修改值的时候,还会影响原来的对象中的值;有三种方式可以实现:方式一:使用循环遍历对象,将其键值赋值给一个新数组;// 对象的浅拷贝var obj = { name: '张三', age: 33, sex: '男', hobby: { a: '1' }}var newObj = {}; //..
2020-07-27 19:19:32
1041
原创 构造函数中原型和原型链的理解
构造函数:为了和其他函数区别,构造函数的首字母推荐大写;构造函数中有两大成员静态成员 对象.属性值来赋值和实例成员通过函数中this.xxx=xxx来赋值;function People(name,age) { this.name = name; this.age = age;}People.sex = '男';var p1 = new People('张三', 33);console.log(p1.name);什么是原型: 每个构...
2020-07-25 20:50:44
385
原创 隐藏浏览器默认滚动条和自定义滚动条样式
隐藏浏览器默认滚动条Chrome浏览器和移动端可以使用-webkit-scrollbar隐藏浏览器自带的滚动条; ::-webkit-scrollbar { width: 0; height: 0; color: transparent; }而火狐和IE可以通过给溢出的盒子嵌套一个父盒子,设置溢出部分auto显示,然后使其宽度增加17px(浏览器默认占据内容的宽度为17px)然后给包裹内容的父盒子在设置overflow:hidden;隐藏溢出的滚动条部分;就可以将默.
2020-07-16 20:51:51
1758
原创 JS常见的面试题简单总结
1、什么是JavaScript?基于对象和事件驱动并具有相对安全性的客户端脚本语言;2、JavaScript与ECMAScript的关系?JavaScript是ECMAScript的表现,ECMAScript是JavaScript的规范;3、变量的命名规则?由字母、数字或者下划线组成;但是不能以数字开头;变量名尽量见名知意,驼峰命名;4、window.onload的作用?window.onload是等文档和资源都加载完成后调用的事件,保证js获取元素 的时候,已经加载..
2020-07-15 21:27:42
881
原创 JS中判断数据类型方法总结
JS中数据类型检测方法总结JS中数据是松散数据类型,总结了几种方式来判断它们的数据类型具体是什么。数据类型的分类:简单数据类型 和 复杂数据类型简单数据类型:数值型,布尔型,字符串型,null,undefined; 复杂数据类型:引用对象(数组,对象,函数);第一种:typeof 操作符语法: typeof 变量; typeof(变量);数据检测类型:console.log(typeof 123); //numberconsole.log(typeof
2020-07-13 18:53:30
242
原创 完整无缝轮播图的原理和实现
无缝轮播图原理: 首先需要一个装所有图片的盒子。然后通过移动装图片的盒子来使图片显示出来。 需要封装一个移动框架,在图片移动时有时间缓冲。 如果需要感觉图片移动时连贯的话,就需要将第一张图片复制一张到最后面,然后当图片切换到最后一张图片时候,立马将图片跳转至第一张,就会给我们一种图片是连贯的错觉。 需要用到的知识点:定位,浮动,动画,定时器 2.实现<!DOCTYPE html><html lang="en"><head> .
2020-07-11 13:53:10
8037
4
原创 简单理解js中的事件对象
基本概念:1. 事件基础:在js中,事件是可以被JS侦测到的行为。2. 事件函数:当事件被触发时,调用的函数。// 事件函数:当事件被触发时,调用的函数。var box = document.getElementsByName('box')[0];box.onclick = function () { console.log('hello');}//onclick= 后面的函数部分就是事件函数。3. 事件对象:当事件发生时,浏览器会将事件相关的信息保存到内置的全局对象
2020-07-07 21:53:43
480
原创 JS中的变量类型、作用域链了解
1.全局变量和局部变量全局变量:全局变量,即函数外部申明的变量类型;此变量在任何地方都可以访问且可以被修改; 局部变量:在函数内部申明的变量,只能在定义的函数内部访问,其他地方不能被访问到;JS中的变量属于松散数据类型,定义的变量可以是任何类型的值,不存在数据类型值的规范;统一只用var关键字来申明;并且可以赋值任何类型(基本数据类型和引用数据类型);引用数据类型:对象保存在堆中,通过定义变量指向对象。 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中; 确定一个值是哪
2020-06-30 20:34:16
149
原创 JS预解析和常见题目总结
JS预解析是什么?浏览器在解析JS代码时候,首先会进行一个预解析的操作。即寻找作用域中var 和 function 关键字及其声明的变量和函数,将其进行事先声明存储。此时变量的值为undefined 函数也未调用。然后再从上到下逐行解析代码。见到操作,就修改前面存储的值,见到读取,就取得前面存储的值。遇到函数执行,就又开启一个新的域,执行预解析和逐行解读。常见JS预解析情况类型情况一:console.log(a); // undefinedvar a = 10;console.log(
2020-06-29 19:09:17
470
原创 javaScript基础之数据类型
数据类型的分类:1. 基础数据类型/简单数据类型:Number(数值型),String(字符串类型),Boolean(布尔类型),Null(空值),Undefined(未定义)2. 引用数据类型/复杂数据类型:对象(Object类型)分为一般对象,Array,Function检测变量的数据类型的两种格式:1. typeof(变量);2. typeof 变量;(注意中间有空格)typeof(变量)检测数据返回的数据类型取值有(6种):"number", "string",...
2020-06-24 16:00:34
314
1
原创 单选框radio-复选框checkbox去掉默认样式添加新样式及点击事件
使用-webkit-appearance:none;border-radius:0;outline:0; 更改单选框radio-复选框checkbox去掉默认样式,然后自己定义自己想要的单选框radio-复选框checkbox新样式,同时给他们添加点击新的点击效果。 最后样式如上所述...<title>消除表单自定义样式自己定义样式</title> <style> * { margin: 0...
2020-06-17 17:26:53
1231
原创 采用弹性盒子布局时候 内部有内容溢出时候应该注意的情况
问题描述:一共有两栏布局,一侧固定宽度,另外一侧自适应宽度;在采用弹性盒子布局时候,假如内部有一块区域有内容溢出的情况时候,如何仅仅使内部内容区域出现滚动条,而不是整个侧边整体出现滚动条?代码还原问题:结构样式 <style> * { margin: 0; padding: 0; box-sizing: border-box; } .main {
2020-06-17 16:33:59
3105
原创 常见的两列自适应的几种布局方式
第一种:采用浮动/定位的方式来实现自适应;<!-- 方式一: 采用浮动/或者定位 --><style> * { margin: 0; padding: 0; box-sizing: border-box; } .box { /* 定位方式 第二步 */ position: relative;
2020-06-16 13:09:14
886
原创 实现3D翻转背面出现不透明的方式
实现3D效果的翻转动画时候 可以通过“backface-visibility: hidden;”这个属性加在翻转盒子时候被背面不想显示的内容身上,实现背面此内容不可见的效果。而做动画的时候需要transform-style: preserve-3d; 放置做动画的盒子身上才能有效果!所以这两个元素一般一起使用HTML结构如下:<div class="cube c1"> <div class="front">1</div> &l
2020-06-16 12:42:50
874
原创 使用CSS简单实现手风琴效果
使用此结构创建手风琴结构<ul><li><divclass="hd">树<br>读</div><divclass="bd"><imgsrc="./images/shudu.jpg"alt=""></div>...
2020-05-21 20:18:04
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人