- 博客(24)
- 收藏
- 关注
原创 为什么要有事件捕获和事件冒泡?
学习js的事件对象,就会提到事件循环机制和事件处理模型,要知其然更要知其所以然,学起来才能事半功倍。大概讲解一下,损失一点精确性,力求简单明了。浏览器的每个坐标点对应一个dom对象(当然这是比喻,实际上是一个dom对象可能占用一大片地方,它是多个坐标点集),就拿hover事件来说,鼠标每次移动一个像素,硬件驱动程序就向操作系统报告一次,这里忽略操作系统这个中介,把它看成直接报给浏览器,毕竟对于前端开发来说,浏览器就可以认为是我们的操作系统。然后浏览器根据这个鼠标坐标位置,找到对应的dom对象,并运行
2020-06-10 13:59:37
1408
原创 在pc上调试app内嵌的网页
环境:MAC电脑,安卓手机一部,苹果手机一部,手机内装有待调试的app,而app里有用webview写的内嵌网页。一、安卓系统的app1.数据线连接安卓手机和mac电脑。2.打开chrome://inspect/#devices网页,这是谷歌提供的在线工具:Inspect with Chrome Developer Tools.3.打开手机,以小米手机为例,点“设置”——》“我的设...
2019-07-11 20:47:42
3514
原创 js数据处理常用方法
一、数组1. 对象数组按某个key的值排序。function sortBy(field) { return function(a, b) { return a[field] - b[field]; }}// 应用var arr = [ { id: 10, age: 22, name: 'aaa' ...
2019-06-27 16:46:40
545
原创 《前端工程化》笔记
wen jianajax技术的问世令静态的网页“动”了起来,异步请求和局部刷新彻底改变了网页的交互模式。 HTML和css只有在浏览器环境或者类浏览器环境下才会被识别解析,所以可以认为这两者是DSL(Domain Specific Language 领域特定语言),而JS本质上是一门编程语言。 所以,数据结构、算法、软件工程等基础知识对于前端工程师同样重要,这些知识决定一个前端工程师的上限。...
2019-05-01 17:34:25
309
原创 git命令行操作,告别可视化工具
安装好git后先修改用户名和邮箱:git config --global user.name "XXXX"git config --global user.email "email@XXX.com"//查看系统配置git config --system --list//查看当前用户配置git config --global --list//查看当前仓库配置git config...
2019-04-22 14:09:37
833
原创 Mac常用操作——快捷键,触摸板及其他
之前一直在windows下做开发,最近工作需要用mac笔记本开发,一下子不是很适应,现在将常用的一些操作整理出来,方便以后查询。触摸板:单指轻点:相当于单击鼠标左键; 双指轻点:相当于单击鼠标右键;(按下Control键后单指轻点触摸板也相当于点鼠标右键); 双指上下滑动:上下滚动页面; 双指左后滑动:浏览器页面中相当于点“前进”或“后退”按钮; 双指撑开或聚拢:放大或缩小页面;...
2019-04-21 13:17:29
3171
原创 JS实现冒泡排序
function bubbleSort(arr){ var arrLength = arr.length; var temp; for(var outer = arrLength; outer >= 2; --outer) { for (var inner = 0; inner <= outer - 1; ++inner){ if(arr[inner]...
2019-04-02 07:44:21
133
原创 JS快速排序算法实现
function quickSort(arr){ if(arr.length == 0){ return []; } var left = []; var right = []; var selectItem = arr[0]; for(var i = 1; i < arr.length; i++){ if(arr[i] < selectIte...
2019-04-02 07:33:38
235
转载 js数字的货币格式表示法(每三位一个逗号分隔)
//保留两位小数并且整数部分三位一个逗号分隔符的数字金钱标准表示法: //这里假设我们即不知道输入数字的整数位数,也不知道小数位数/*将100000转为100,000.00形式*/var dealNumber = function(money){ if(money && money!=null){ money = String(money); ...
2019-03-06 07:48:04
2200
原创 序列化两个流程,用ES6语法封装
let testArr = [ testA, testB, testC]testArr.reduce(async (promise, value) => { return promise.then(async () => { await value() return Promise.resolve() })}, Promise....
2019-02-21 08:36:20
439
原创 项目设置属性为 { flex: 1 }时表示的意思
flex属性是 flex-grow + flex-shrink + flex-basis 的缩写。1.赋给3个值.item { flex: 100 200 300px;}// 等价于.item { flex-grow: 100; flex-shrink: 200; flex-basis: 300px;}2.赋值为auto.item {...
2019-01-28 17:35:28
7684
原创 flex布局
容器属性 项目属性 flex-direction row (默认) row-reverse column column-reverse order int类型,默认0,数值越小越靠前,可取负值 flex-wrap nowrap(默认) wrap rap-rev...
2019-01-28 16:11:55
165
转载 图解JavaScript中的各种宽度高度属性
1.与window相关的宽高属性1.1 window.location和document.locationwindow对象的location属性引用的是location对象,表示该窗口中当前显示文档的URL document的对象的location属性也是引用location对象 所以 window.location === document.location //true1.2 w...
2019-01-27 10:06:24
869
原创 像素(px)到底绝对单位还是相对单位
px是最常用的CSS长度单位。1px到底多长?CSS长度分为绝对长度和相对长度。 css单位pixel(像素)是图像的基本采样单位。它不是一个确定的物理量,也不是一个具体的点或者小方块(尽管可以用点和小方块来呈现),而是一个抽象概念。 不同的设备,其图像基本单位是不同的,比如显示器的点距,可以认为是显示器的物理像素。现在的液晶显示器的点距一般在0.25mm到0.29mm之间。而打印机的...
2019-01-27 09:58:13
19208
1
原创 CSS单位
长度单位:(关于px详解见文末链接)单位 含义 px(绝对?相对?) 相对于屏幕分辨率而不是视窗大小:通常为1个点,一般为1/96英寸 em(相对单位) 相对于父元素的字体大小,若父元素font-size为16px,那么1em就为16px %(相对单位) 相对于父元素。正常情况下是通过属性定义自身或其他元素 rem(相对单位) 相对于根元素字体大小...
2019-01-27 09:46:47
540
原创 JS实现3人斗地主发牌算法
//用1——54的数组代表54张牌function myCreateArray(n){ var arr = []; for(var i = 0; i < n; i++){ arr[i] = i + 1; } return arr;}var cards = myCreateArray(54);console.log('Get A Deck of Cards is: ' +...
2018-07-15 09:41:17
4991
1
原创 JS实现斐波那契数列获得第n项的值
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,……其规律是:第0项是0,第1项是第一个1。这个数列从第3项开始,每一项都等于前两项之和。代码示例:function myFibonacci(n) { i...
2018-07-12 22:25:24
5757
1
原创 css选择器权重测试
问题:如下代码所示,'CCCCCCCCCC'行的背景色是red, blue or yellow?<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <meta http-equiv="content-type" content="t
2018-07-10 21:55:23
425
原创 Node.js之实时通信初步——创建TCP服务器
示例代码(假设文件保存为chat1.js):var net = require('net');var chatServer = net.createServer();chatServer.on('connection', function(client) { client.write('Hi!\n'); client.write('Bye!\n'); client.end();});...
2018-07-08 20:15:55
619
原创 Node.js之HelloWorld!
源码示例(设文件保存为hello.js):var http = require('http');http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!\n');}).listen(8124, "127.0.0.1");...
2018-07-08 19:43:20
152
原创 JS将毫秒时间转换成本地时间去掉TZ
function myTimeToLocal(inputTime){ if(!inputTime && typeof inputTime !== 'number'){ return ''; } var localTime = ''; inputTime = new Date(inputTime).getTime(); const offset = (new Date(...
2018-07-02 22:16:43
5182
1
原创 JS实现求一个数(如:600851475143)的最大质因数
/* 对于给定的N, 使factor = 2, 3, 4, 5, 6...,如果递增至某个factor时, 当其能被N整除时, 则(N/factor)是N的最大因数。其中属于(N/factor)的因数也必然是N的因数。如果此时(N/factor)恰巧是质数,则返回其值,程序结束;如果此时(N/factor)不是质数,则求它的最大质因数即为N的最大质因数;重复上述过程即可最终求解。 */...
2018-07-01 10:15:03
1384
原创 JS实现pool轮询函数
function myPool(cs, cb, interval){ if(cs()){ return cb(); } else{ setTimeout(() => { myPool(cs, cb); }, interval); }}function checkStatus() { var i = 0; var arr = [0,0,0,1,1]; return (...
2018-06-30 10:45:13
2114
原创 JS实现字符串全排序
这是一道经典的算法题,学过排列组合的童鞋们都知道长度为n的字符串其全排序大小为n! (这里不考虑字符串里有重复字符,不做去重处理)。网上有各种语言的实现算法,但js语言实现的比较少(果然藐视【划掉】忽略我广大前端er的算法水平)。另外,网上实现的多为递归方法。这里用非递归的js实现一下,轻拍。先说一下思路:单个字符的串,比如a全排序为1(废话忽略)。两个字符的串比如ab,全排序数为2,即:a...
2018-06-30 10:25:29
12625
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人