- 博客(21)
- 收藏
- 关注
原创 常见面试题
1.节流函数封装 function throttle (fn, delay = 1000) { let timer = null; let firstTime = true; return function (...args) { if (firstTime) { // 第一次加载 fn.apply(this, args); return firstTime = false; }
2021-07-05 20:01:32
230
原创 es6新增属性
es6新特性: 1、向对象添加属性 克隆对象,同时向(浅)克隆对象添加附加属性,如下代码: const user = { id: 10, name: 'Tom'}const userWithPass = { ...user, password: 'Password!' }user //=> { id: 10, name: 'Tom' }userWithPass //=> { id: 10, name: 'Tom', password: 'Password!' } 在这个例子里面user克隆成u
2021-06-15 19:18:34
1153
原创 jQuery AJAX
1.url 说明:发送请求的地址(默认为当前页面),要求是String类型的参数,比如是.net下,"~wexin(控制器)/getweinxinmenu(动作)", 2.type 说明:请求方法(post或者get),默认是get,要求是String类型的参数。其他的htpp请求如(put、delete)等也支持,但是要浏览器支持 3.timeout 说明:设置请求超时时间(毫秒),要求是number类型的参数。此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async 说明:默认值为true
2021-06-08 12:39:29
242
原创 JS ajax
封装自己的Ajax函数 主要是兼容自己的get,post两种不同请求的请求方式,在实现一下兼容的处理 ajax.open(method,url,true) 方法post get 请求地址 异步true 同步false ajax.send() 发送 onreadystatechange 监听数据 返回4 数据已经请求回来了 代码实现: function ajaxFn(method, url, callBack,data,flag) { var xhr = null; if (window.XM
2021-06-07 18:40:45
162
原创 运动框架和轮播图
运动框架 function startMove(dom, attrObj,callback) { // 传入一个元素,我让元素运动城你想要的的目标 clearInterval(dom.timer) var iSpeed = null, iCur = null; dom.timer = setInterval(function () { var bStop = true;
2021-05-24 20:31:34
120
原创 飞机大战
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div {
2021-05-24 20:28:51
419
原创 jquery制作弹幕
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .box { width: 1000px; margin: 50px auto; } .box .video {
2021-05-17 20:38:31
158
转载 用CANVAS画布制作随机小球
不多说先上图 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #myCanvas{ border: 1px solid black; margin: 20px auto; display:block; } </style>
2021-05-12 17:28:27
603
原创 关于栈
编译 词法解析:这个过程会将由字符组成的字符串分解成有意义的代码块(词法单元)。 语法分析:这个过程将词法单元流转换成一个由元素逐级嵌套所组成的代表了程序语法的树(抽象语法树 => AST)。 代码生成:将AST转换为可执行代码的过程被称为代码生成。 引擎编译执行代码 然后将构建出的代码交给引擎(V8),这个时候可能会遇到变量提升、作用域和作用域链/闭包、变量对象、堆栈内存、GO/VO/AO/EC/ECStack、…。 引擎在编译执行代码的过程中,首先会创建一个执行栈,也就是栈内存(ECStack =
2021-05-09 18:09:48
167
原创 关于闭包
在JavaScript中有作用域、作用域链和闭包。我们最开始可能觉得知道这些的定义就算懂了(刚入门时的我也是这样),但是当深入了解的时候,发现自己知道的只是皮毛。所以,这篇文章将详细讲解作用域、作用域链和闭包。 我们先借助一道题,了解一下作用域、作用域链和闭包的形成过程~ let x = 1; function A(y){ let x = 2; function B(z){ console.log(x+y+z); } return B; } let C = A(2); C(3); 对于上面的这张解答图,有如
2021-05-09 18:07:47
203
原创 函数柯里化
首先看看柯里化到底是什么? 维基百科上说道:柯里化,英语:Currying,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 // 普通的add函数 function add(x, y) { return x + y } // Currying后 function curryingAdd(x) { return function (y) { return x + y } } add(
2021-05-05 19:03:40
118
原创 弹性布局
1 弹性布局简介 弹性布局,又称“Flex布局”。可以简便、完整、响应式地实现各种页面布局。 了解两个基本概念,接下来会频繁提到: ① 容器: 需要添加弹性布局的父元素; ② 项目: 弹性布局容器中的每一个子元素,称为项目; 了解两个基本方向,这个牵扯到弹性布局的使用: ① 主轴: 在弹性布局中,我们会通过属性规定水平/垂直方向为主轴; ② 交叉轴: 与主轴垂直的另一方向,称为交叉轴。 2 弹性布局的使用 ① 给父容器添加display: flex/inline-flex;属
2021-05-05 18:41:24
642
原创 闭包
闭包简介 闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。 下面举例一道简单的闭包实例 function a(){ var i=0; function b(){ alert(++i); } return b; }var c=a(); c(); 特点 这段代码有两个特点: 函数b嵌套在函数a内部; 函数a返回函数b。 这样在执行完var c=a(
2021-04-25 19:10:22
122
原创 作用域和作用域链
什么是作用域 作用域(scope)是指程序源代码中定义变量的区域,简单来说,一段程序代码中所用到的变量并不总是有效的,而限定这个变量的可用性的代码范围就是这个变量的作用域。 在JavaScript中使用的作用域是词法作用域(静态作用域),特点就是变量的作用域在变量定义时确定。下文所说的作用域都指代词法作用域。 全局作用域 全局作用域是最外层的一个作用域。是根据ECMAScript实现所在的宿主环境而改变的,在浏览器中,全局作用域就是Winodw对象,node则是global对象。 在全局作用域的变量可以在所
2021-04-25 18:55:23
231
原创 Java Script 对象
真实生活中的对象、属性和方法 在真实生活中,汽车是一个对象。 汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法: 对象 属性 方法 车 car.name = porsche car.start() car.model = 911 car.drive() car.length = 4499mm car.brake() car.color = white car.stop() 所有汽车都拥有同样的属性,但属性值因车而异。 所有汽车都拥有相同的方法,但是方法会在不同时间被
2021-04-22 19:18:37
178
原创 使用HOVER伪类制作太极动图
首先 我们可以将太极分解为三个圆 一个大圆中间有两个小圆 这样BODY中代码为 然后开始做下面的大圆 代码为 :root,html是设置页面背景 方便显示出太极图 其中animation 为后面旋转 控制动画代码 现在页面显示为 这里可以发现比太极图少了一些弧形 所以接下来我们开始做 .father ::before ::after 此代码意思为在 该属性前后插入内容 我们就做好了太极下面的大圆 上方小圆的做法与第一步相同 我就直接上代码了 .left{ width: 0.
2021-04-19 19:56:36
259
原创 三分钟了解数组常用方法
concat 连接两个或更多数组,并返回结果 var arr1 =["a","d","c","d","e"]; var arr2 =["a","d","e","c","d"]; var arr3=["e","c","d","a","d","c"]; var arr4=arr1.concat(arr2,arr3); 输出结果为 a,d,c,d,e,a,d,e,c,d,e,c,d,a,d,c indexOf和lastIndexOf indexOf:搜索数组中的元素,并返回它所在的位置。 如果在数组中没找到指
2021-04-12 19:46:41
150
原创 三分带你学会js 常用字符串函数
concat 将两个或多个字符的文本组合起来,返回一个新的字符串 注意concat 属性不会改变原数组,返回的是拼接后的数组的副本 ** indexOf ** 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。 右下角为返回值; charAt 返回指定位置的字符。 lastIndexOf 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。 replace 方法在字符串中用某些字符替换另一些字符。 字符串大小写转换 toLocale
2021-04-12 19:07:20
186
原创 JS入门使用IF语句判断执行
首先我们来先开一下例题, 某超市进行促销活动,规则如下:如果是本超市的会员,购买的商品总价在100元以上,八折优惠;如果是会员但商品总价在100元以下9折优惠;如果非会员商品总价在100以上九折优惠;如果非会员商品总价在100以下,不打折;询问用户是否是会员(0和1代表),和商品的总价,根据答案判断折扣额以及最终要付款的金额 首先,我们应该先使用语句判断 来人是不是会员所以, 然后再进行判定消费金额, 是会员则在100元以下给出9折优惠,100元以上给出8折优惠, 非会员则在100元以下不优惠,10
2021-03-28 18:49:04
997
原创 定位布局
定位布局 定位属性: position 作用: 指定元素的定位类型 取值: static 默认不定位 relative 相对定位 absolute 绝对定位 fixed 固定定位 首先我们先创建三个不同颜色的方块方便演示 position:raltive;相对定位 特点: 相对不脱离文档流,并且是占有之前的位置,随着自身原来位置的左顶点进行位置偏移的。 偏移量: top left right 这里我们来偏移第一个红色小方块 因为 相对定位后元素不会脱
2021-03-15 13:07:16
157
原创 三分钟学会使用HTML制作三角形
首先我们了解在HTML中每一个元素都是一个盒子 盒子是由外边距 边框 内边距 内容组成的 而三角形 是由控制盒子边框构成 如下列代码 得到下列图形 在这里我们由于边框和内容的挤压 得到了四个梯形, 那我们尝试将内容设置为零。 将代码中width和height 的值设为0; 就可以得到四个三角形, 但是因为我们只要一个三角形, 所以可以尝试将不要的三角形隐藏, 这里就要提到 border中的transparent属性 该属性的用处为将border隐藏 &l
2021-03-10 12:58:32
4069
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅