- 博客(26)
- 收藏
- 关注
原创 JavaScript中的事件循环机制
如果有三个按钮,其回调函数里面处理的代码量用的时间各不相同,用户依次快速的点击三个按钮,此时用户希望的是,先点击的先执行,后点击的后执行,可是由于是Js多线程的,每一个回调函数都会被注册成一个线程,这时,肯定是用时少的先执行。这就造成了一个很大的问题,用户体验很不好可能有人会问,定时器里的代码为什没有按照顺序执行呢?答:JavaScript采用了一种排队机制,将异步代码放入了消息队列中,待同步代码执行完后,如果消息队列中存在异步代码需要执行,就会唤醒Js主线程去执行这些异步代码。
2024-06-11 11:53:52 1948 1
原创 单点登录的三种模式
单点登录存在的意义在于,比如公司里有多个系统,我只想登录一次,便可以在访问多个系统单点登录有很多模式,目前已知三种模式1、cookie + session模式2、token模式3、token + refresh_token模式。
2023-12-30 16:56:57 612
原创 工作实战:Vue关于ElementUI二次封装的问题
解决方法:用批量属性传值的方法,学过react的都知道,类似于{…props}批量传值。有的属性可能需要二次处理,可以使用props接收,props过来的属性,不会出现在$attrs里了。你可以单独处理后再放回elementui的原生组件里了。
2023-04-07 00:25:35 1511
原创 过渡&2D变换&动画
过渡/*默认值:*/transition-delay: 0stransition-duration: 0stransition-property: alltransition-timing-function: ease/*简写,推荐书写顺序如下*/ transition:transition-duration transition-property transition-timing-function transition-delay transition-duration属性:以秒或
2021-04-11 14:28:43 145
原创 Promise的学习总结
回调地狱的产生无法保证顺序的代码:var fs = require('fs')fs.readFile('./data/a.txt', 'utf8', function (err, data) { if (err) { // return console.log('读取失败') // 抛出异常 // 1. 阻止程序的执行 // 2. 把错误消息打印到控制台 throw err } console.log(data)})fs.re
2020-09-15 10:39:15 246 1
原创 闭包
闭包(closure)1.如何产生闭包? 当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数),内部函数被定义时(即外部函数被执行时),就产生了闭包。 外部函数执行几次就产生了几个闭包2.闭包到底是什么? * 使用chrome查看 * 理解一:闭包是嵌套的内部函数(绝大多数人) * 理解二:包含被引用变量(函数)的对象(极少数人) * 注意:闭包存在于嵌套的内部函数中 3.产生闭包的条件?函数嵌套内部函数引用了外部函数的数据(变量/函数)如下代码
2020-08-17 11:12:51 248
原创 ES6的必备知识
let和const的使用let和var的区别?let声明的变量只在当前(块级)作用域内有效let声明的变量不能被重复声明(包括普通变量和函数参数)不存在变量提升(注意考虑暂时性死区)不能当成window的属性(用var声明的全局变量是window的属性)1、只在块级作用域内有效{ let a = 10;//局部变量}console.log(a);//访问报错2、不能被重复声明let a = 10;let a = 20; //报错3 、不存在变量提升console.
2020-07-30 21:34:01 338
原创 数组排序
这里先介绍两种常见的,后续会补充冒泡排序function bubbleSort(arr) { //外层控制轮数,轮数是元素的个数减1 for (var i = 0; i < arr.length - 1; i++) { //内层控制每轮比较的次数,随着轮数每增加1轮,次数减少1 for (var j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1
2020-07-23 10:23:53 131
原创 数组去重的方法
第一种function norepeat(arr) { for (var i = 0; i < arr.length - 1; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { arr.splice(j, 1);//删除一个元素之后,原数组发生改变,后边的元素会往前进一步,但是j是正常累加 j--
2020-07-22 21:10:36 193
原创 字符串的常用方法
字符串的基本操作var str = "abcde";console.log(str[0]); //获取对应索引的字符console.log(str.length); //获取字符串的长度for (var i = 0; i < str.length; i++) { //遍历字符串 console.log(str[i]);}charAt(index)取到index这个索引对应的字符var str = "abcd";var s = str.charAt(1);console.l
2020-07-22 14:48:37 411
原创 JS数组的方法
1、concat合并数组,可以合并一个或者多个数组,会返回合并数组之后的数据,不会改变原来的数组var str1 = [12, 2, "hello"];var str2 = ["world"];console.log(str1.concat(str2)); //[12,2,"hello","world"]console.log(str1); //[12,2,"hello"]2、join将数组转为字符串并返回转化的字符串数据,不会改变原来的数组注意:()中用双引号包括自己想用的分隔符,默认为逗号
2020-07-18 15:13:57 350
原创 图片水平垂直居中
图片水平垂直居中(内联元素 = 伪文本)1、水平居中:给父元素加text-align:center2、垂直居中:在图片img前或后加一个span,给span添加声明height:100%;display:inline-block;使span以中线对齐,添加声明vertical-align:middle使img以中线对齐,添加声明vertical-align:middle...
2020-07-08 10:23:11 259
原创 CSS垂直水平居中
1、position:absolute;left:50%;top:50%;margin-left:-(width/2)px;margin-top:-(height/2)px;2、position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;3、position:absolute;left:50%;top:50%;tranform:translate(-50%,-50%);4、position:absolute;left:50%;top:50%;
2020-07-08 09:14:03 127
原创 伪类选择器和伪元素
伪类选择器伪类选择器有以下6种:动态伪类:锚点伪类用户行为伪类目标伪类UI元素状态伪类否定伪类选择器语言伪类选择器CSS3结构伪类动态伪类这些伪类并不存在于HTML中,只有当用户和网站交互的时候才能体现出来锚点伪类 link visited hover active(一定要按照这个顺序写)用户行为伪类 hover active focus目标伪类用于命名锚记<!DOCTYPE html><html lang="en">
2020-07-02 17:13:35 229
原创 JavaScript正则表达式
正则表达式( Regular Expressions)介绍什么是正则表达式?由以下两种字符组成的文字模式 1、普通字符(例如26个英文字母、数字等) 2、特殊字符(有特殊含义的,例如.\等)该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符串模式与所搜索的字符串进行匹配。为什么使用正则表达式? 查找、替换、数据有效性验证初始正则表达式正...
2020-06-03 17:56:59 250 1
原创 响应式布局原理
什么是响应式布局一种网站兼容多种终端对不同屏幕尺寸(大小)做出响应,并进行相应布局的一种移动Web开发方式以下有两种响应式布局,仔细读懂其中的代码,你也就掌握了响应式布局的原理了。(代码有很多重复的地方,只是看起来很长,内容并不多)grid.css.container { width: 100%; padding-left: 15px; padding-right...
2020-02-25 12:22:12 308
原创 CSS选择器和CSS3选择器
文章目录CSS导入方式css导入方式优先级CSS选择的艺术标签选择器类选择器ID选择器群组选择器全局选择器后代选择器伪类选择器CSS继承和层叠CSS权重CSS命名规范CSS3选择器基本选择器子元素选择器相邻兄弟元素选择器通用兄弟选择器群组选择器属性选择器Element[attribute]Element[attribute=“value”]Element[attribute~=“value”]El...
2020-01-09 16:52:48 223
原创 原型与原型链的基本知识
原型和原型链(prototype)介绍1、函数的prototype属性 每个函数都有一个prototype属性,它默认指向一个Object空对象(除了Object函数)即称为:原型对象,并不是真是空的,只是没有我们添加的属性和方法而已 原型对象中有一个属性constructor,它指向函数对象,还有一个__proto_属性2、给原型对象添加属性(一般都是方法) 作用:函数的所有实...
2019-11-28 18:19:38 182
原创 flex布局
flex布局一、什么是flex布局 Flex 是 Flexible Box缩写,意为“灵活的盒子”或“弹性的盒子”,所以flex布局一般也叫弹性布局二、什么是flex容器(flex container)? 采用flex布局的元素,称为flex容器三、什么是flex项目(flex item)? flex 容器的所有子元素自动成为容器成员,称为flex项目(注意:孙子元素不会成...
2019-11-25 17:21:19 2002 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人