前端
tcap99
这个作者很懒,什么都没留下…
展开
-
每日JavaScript-30 十进制转二进制及位运算
先写了一个生成连续正整数的函数,调用JavaScript自带的toString(2)就可以实现十进制转换为二进制。注意的是,调用toSrtring()会将number类型隐式转换为string类型。function to2(start, end) { return Array.from({length : end - start + 1}).map((value, index) => v...原创 2019-04-29 21:39:17 · 576 阅读 · 0 评论 -
每日JavaScript之垃圾收集
被好友问到这个问题,突然发现自己知之甚少JavaScript具有自动垃圾收集机制,为此垃圾收集器会按照固定的时间间隔,周期性地执行这一操作。垃圾收集器有两种方法:标记清除和引用计数标记清除的简单原理:在运行时给存储在内存中的所有变量都加上标记,然后,它会去掉环境中的变量以及被环境中的变量引用的变量标记。而在此之后再被加上标记的变量会被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变...原创 2018-11-27 13:53:34 · 114 阅读 · 0 评论 -
每日JavaScript -17
原以为对JS有所熟悉,谁不知道还远远不够。在数组开头添加元素,方法有二arr.unshift('start')['start', ...arr]自己手写的原生ajax请求const xhr = new XMLhttpRequest()xhr.open('get','example.php', true)xhr.onreadystatechange = function (suces...原创 2018-11-27 12:58:52 · 76 阅读 · 0 评论 -
每日JavaScript -20 (闭包Closure)
闭包是学习JavaScript的一大难题。所以觉得系列第20篇就来讨论闭包。https://github.com/mqyqingfeng/Blog/issues/9原创 2018-11-30 01:32:28 · 142 阅读 · 0 评论 -
每日JavaScript - 19 (this,js内存引用)
看到一道关于this的题目,挺简单的https://juejin.im/post/5bfe8fc5e51d4514e0515b90#commentvar num = 1;var myObject = { num: 2, add: function() { this.num = 3; (function() { conso...原创 2018-11-29 17:49:22 · 244 阅读 · 0 评论 -
每日JavaScript -16 (简单排序和快速排序)
我总结并写一下简单的排序算法的JavaScript实现,应该写到快速排序就结束了。参考文章(其实没怎么看)https://www.jianshu.com/p/1b4068ccd505冒泡排序const bubbleSort = (arr) => { const len = arr.length for (let i = len - 1; i > 0; i --) { ...原创 2018-11-29 00:41:13 · 100 阅读 · 0 评论 -
每日JavaScrip - 15(简单算法)
给定一个数组,能组成三角形返回最大周长,否则返回0(不可重复取值)const arr = [2, 3, 4, 5, 10]function solve(arr) { const len = arr.length let tri_len let longest let rest_len let result = 0 for (let i = 0; i < len; i++) ...原创 2018-11-26 02:43:58 · 103 阅读 · 0 评论 -
每日JavaScript之数组全排列
我想了很久这道题目,也写不出代码,看到别人的代码才恍然大悟。https://blog.csdn.net/K346K346/article/details/51154786果然,自己对算法一窍不通。let test = [1,2,3]function swap(arr, i, j) { [arr[i], arr[j]] = [arr[j], arr[i]]}function ful...转载 2018-11-20 02:49:03 · 275 阅读 · 0 评论 -
每日JavaScrip - 14
构建一个简单的express服务器首先要具备node环境,然后npm initnpm i express --save然后在文件夹中新建一个server.js,写入如下代码const express = require('express')const app = express()// 默认将index.html当作访问页面app.use(express.static(__dir...原创 2018-11-21 12:46:07 · 79 阅读 · 0 评论 -
每日JavaScript之socket.io实现聊天室
首先感谢作者windlany,能够写出简单易懂的文章,能将代码(注释也非常详细)共享出来供我学习。 https://juejin.im/post/5a73ddcff265da4e81237429所用的技术node + express + socket.io + jQuerysocket.io是实现websocket的库,websocket不同http是一个双向通信的协议,所以非常适合用在...原创 2018-11-14 22:31:49 · 305 阅读 · 0 评论 -
git小坑
windows使用git回退上一版本git reset --hard HEAD^会不停冒出more?more?最后报错这是因为cmd控制台中换行符默认是,而不是 ,所以它的more?的意思是问你下一行是否需要再输入,而 符号就被当做换行符而被git命令忽略掉了。可以使用git bash和powershell,就不会出现这种问题。解决方法git reset --hard "HEAD^"...原创 2018-11-08 19:31:28 · 111 阅读 · 0 评论 -
每日JavaScript之JSONP
JSONP是前端最常用来处理跨域请求的方法。JSONP是JSON with padding。JSONP由两部分组成:回调函数和数据。原理是利用<script>标签没有跨域限制。缺点是只支持GET请求,可能夹带恶意的代码和难以确定JSONP请求是否失败。https://gaoupon.github.io/2016/09/05/前端跨域请求原理及实践/ 贴上一篇比较浅显的博文这是使...转载 2018-11-11 19:23:23 · 175 阅读 · 0 评论 -
每日JavaScript - 13
这是关于客户端存储的文章。离线检测HTML5定义了一个navigator.onLine属性,true为设备能上网,false为设备离线。但存在兼容性问题。状态改变时,会在window对象中触发online和offline事件。应用缓存&lt;html mainfest="/offline.manifese&gt;核心API是applicationCache对象,有一个status属性表...原创 2018-11-08 13:53:22 · 109 阅读 · 0 评论 -
每日JavaScript - 7 (随机数和数组乱序)
今天要聊一个学编程以来很感兴趣的话题:计算机的”随机“是真正的随机码?暂时将这个大问题放下,先来解决一个问题:数组乱序这很简单啊,例如在网上广为流传的代码function shuffle(arr) { return arr.sort(function() { return Math.random() - 0.5; });}https://75team.com/post/arra...原创 2018-11-06 00:25:45 · 475 阅读 · 0 评论 -
每日JavaScript - 6
上一篇文章大多是引用别人的答案,觉得有点惭愧。下面就拿一道题热身吧。在逛博客时看到 coordinate_blog的https://blog.csdn.net/qq_17550379/article/details/83048534 一道来自leetcode的题目。比较简单leetcode 922给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 ...原创 2018-11-05 22:52:56 · 142 阅读 · 0 评论 -
每日JavaScript - 18(作用域,NaN等题目)
以下为我阅读红宝书作用域链和变量对象的笔记:执行上下文(执行环境)分为全局和局部,在浏览器端全局是window对象,在node全局是global对象。每个函数都有自己的执行环境,每个执行环境中都有一个与之关联的变量对象,环境中定义的所有变量和函数都保留在这个对象中。当代码在一个环境中执行时,会创建变量对象的一个作用域链。作用域链的用途是保证对执行环境有权访问的所有变量和函数的有序访问,作用域链...原创 2018-11-28 01:02:29 · 247 阅读 · 0 评论 -
每周阅读文章(week 1)
这是我新开的系列,用来记载我所阅读的技术文章,按周来更新,方便我日后再来查阅。chrome开发者工具的使用https://www.zcfy.cc/article/mastering-chrome-developer-tools-next-level-front-end-development-techniques-3722.html?t=selectionchrome开发者工具的使用(补充加...原创 2018-11-27 23:24:15 · 140 阅读 · 0 评论 -
每日JavaScript之模块加载
参考文章:http://es6.ruanyifeng.com/#docs/module-loaderhttps://juejin.im/post/5bea425751882508851b45d6https://www.jianshu.com/p/b7db6224a4aa首先,JavaScript一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来...原创 2018-11-28 15:10:35 · 477 阅读 · 0 评论 -
每日JavaScript-29 逻辑运算符,位运算符undefined和null
// nullconsole.log(undefined || null)// 0console.log(undefined & null)原创 2019-04-28 21:19:31 · 355 阅读 · 0 评论 -
每日JavaScript-28 对sort()简单使用
sort()是JavaScript的内置排序实现,据说对于长度少于10的数组采用插入排序,超过10采用快排。等到我技术水平更高点,就去看V8源码吧(笑)平常对手数字,是这样使用sort()let r1 = [1, 2, 3, 0, -1].sort((a,b) => b - a)let r2 = [1, 2, 3, 0, -1].sort((a,b) => a - b)// 降...原创 2019-04-28 15:54:48 · 93 阅读 · 0 评论 -
30 seconds of code - array 中文简要说明
allconst all = (arr, fn = Boolean) => arr.every(fn)函数封装了every函数,判断条件默认为元素默认转为boolean值,如果都为true,则返回true。否则,返回false。allEuqualconst allEqual = arr => arr.every(val => val === arr[0])如all函...原创 2019-05-02 21:31:11 · 568 阅读 · 0 评论 -
每日JavaScript-27 检查数组的方法
看到有人说、可以判断数组arr.constructor === Array这种方法存在问题,constructor属性可以改变的let arr = [0,1]arr.constructor = '123'console.log(arr === Array)这种检查方法就失效了...转载 2019-04-28 10:09:57 · 112 阅读 · 0 评论 -
每日JavaScript-26 运算符的优先级 箭头函数注意点
运算符的优先级应该属于编程语言的微小细节。以前不太重视,知道看到别人扁平数组的代码const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)))经过测试显示,逗号运算符.是优先于扩展运算符…。let test = [1, 2, 2, 3]// 2 4 ...原创 2019-04-28 09:06:12 · 359 阅读 · 0 评论 -
每日JavaScript-25 Infinity关键字
将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组?这道题有一个完美简洁的答案Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{ return a-b})其中涉及到 Infinity关键字,之前我还不知道呢。在阮老师的ES6中有提及,数组操作flat()。这个用了es6新特性,简化了代码arr.flat(Infi...原创 2019-04-27 21:10:34 · 573 阅读 · 0 评论 -
每日JavaScript-24 数组交集问题
「给定两个数组,写一个方法来计算它们的交集。// 例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]。」我第一版的代码但当测试let nums1 = [1, 2, 2, 1]let nums2 = [2, 1, 2]就会出现交集是[1, 2, 2, 1]的错误其实每次清除arr2中已经遍历过的元素就可以避免这个问题很久没更...原创 2019-04-27 20:05:34 · 150 阅读 · 0 评论 -
每日JavaScript-31 一些小技巧
https://juejin.im/post/5cc55eb5e51d456e577f93f0在掘金看到这篇文章,里面有很多“邪门歪道”的JavaScript的技巧,对于我这种菜鸡还是挺有趣的。创建过去七天的数组// 创建过去七天的数组[...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days))把...转载 2019-05-01 19:46:02 · 489 阅读 · 0 评论 -
每日JavaScript - 22(编程细节)
阅读《高程》第24章,发觉自己代码有听过不规范处。js更改cssJavaScript与css交互时,通过添加或者class进行交会,从而提高代码可读性。element.className = &quot;edit&quot;尊重对象所有权不要为实例或者原型添加属性不要为实例或原型添加方法不要重定义已经存在的方法避免全局量避免:let name = 'Nicholas'function sayN...原创 2018-12-11 15:30:56 · 147 阅读 · 0 评论 -
每日JavaScript -23 new的简单模拟
var newObj = function(func){ var t = {} t.prototype = func.prototype var o = t var k =func.call(o); if(typeof k === 'object'){ return k; }else{ return o; ...转载 2018-12-16 22:52:09 · 110 阅读 · 0 评论 -
github上前端面试知识整理之CSS部分
github仓库链接:https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型、W3C 盒子模型; (2)盒模型: 内容(content)、填充(p...转载 2018-12-16 22:07:38 · 122 阅读 · 0 评论 -
每周阅读文章(week2)
一个将知识深入浅出讲解的工程师专栏https://www.zhihu.com/people/li-yin-cheng-24/posts?page=2生成云朵的css代码跟之前生成Microsoft图标的原理相同https://www.jb51.net/css/639834.html...原创 2018-12-06 06:41:24 · 130 阅读 · 0 评论 -
每日JavaScript - 22(待整理的代码)
const arr = Array(n).fill().map((_,i)=&amp;amp;amp;gt;i+1); //初始化一个 1~n 的数组const arr =[...Array(n).keys()];const arr =Array.from(Array(n).keys());Array(n).fill()创建密数组简单实现加法function bitAdd(m, n) { while ...原创 2018-12-06 06:26:11 · 109 阅读 · 0 评论 -
每日JavaScript -21(声明对象)
声明单个对象,不用说let obj = {}let object = new Object()但声明多个对象就要一定技巧了参考文章:https://github.com/mqyqingfeng/Blog/issues/15工厂模式function createPerson(name) { var o = new Object(); o.name = name; ...原创 2018-12-05 12:57:40 · 160 阅读 · 0 评论 -
每日JavaScript - 12
今天要说说Ajax。(自己对这方面不了解,为了避免误人子弟,只作个人浏览) xhr.open("get", "example.php", false)这段代码会启动一个针对example.php的GET请求,第三个Boolean为是否异步的意思在调用open()方法之后而且调用send()方法之前调用setRequestHeader()可以自定义请求头部信息xhr.open('POST...原创 2018-11-08 01:59:17 · 79 阅读 · 0 评论 -
每日JavaScript - 11 十种数组去重方法,寻找最长子串的长度
题目1给定一个字符串,找出不含有重复字符的最长子串长度如 ‘abcabcbb’ 输出3,子串为abc‘pwwkew’ 输出3,子串为wke‘bbbbbb’ 输出1, 字串为b感觉自己以前做过这题,也是非常基础的题目let test1 = 'abcabcbb'let test2 = 'pwwkew'let test3 = 'bbbbbbb'function findLen(str)...原创 2018-11-07 21:13:04 · 247 阅读 · 0 评论 -
给定一个字符串,打乱顺序后添加一个字符,怎么得到新添的字符?
原本以为这题很简单,很快写出function findStr (str1, str2) { str1 = str1.split('') str2 = str.split('') for (let i = 0; i &lt; str2.length; i++) { if (str1.indexOf(str2[i]) === -1) { re...原创 2018-10-24 01:49:31 · 512 阅读 · 0 评论 -
<b>和<strong>不同之处
这也是以前看到的问题,现在特意记录。<b>和<strong>(md格式,要转义才能显示出来)都有为文字加粗的效果,但语义有所不同。<b>只是为了加粗,<strong>则有强调,重点的意思。所以在盲人朋友使用阅读设备阅读网络时:<strong>会重读,<b>不会…...原创 2018-10-25 23:52:15 · 117 阅读 · 0 评论 -
红绿灯面试题目(Promise, 队列实现)
https://www.cnblogs.com/dojo-lzz/p/5495671.html这是阅读这篇博文记下的笔记红灯三秒亮一次,黄灯1秒亮一次,绿灯2秒亮一次,,如何让三个灯不断交替重复亮灯light函数返回一个Promise状态,当Promise状态从Pending => fulfilled,step才会执行下一个then。这里使用递归,不使用循环是因为JavaScript...转载 2018-10-23 12:45:45 · 1279 阅读 · 0 评论 -
css3加载条(待更新)
半夜被蚊子咬醒,那就顺手来写博客吧。最近对各种加载条产生兴趣,索性就来研究一下吧。对我而言,加载条用gif实现,太浪费资源而且复用性不够,使用canvas好像又大材小用,自然是使用CSS3实现最为理想。条形加载条下面的代码是我对别人实现的改良版本,点击链接可以到codepen看效果和代码哦。https://codepen.io/tcap99/pen/XxGoyyHTML<div ...原创 2018-10-29 02:59:54 · 458 阅读 · 0 评论 -
不使用循环,创建一个长度为100的数组,并使数组的每个值等于它的下标(待更新)
这是我一道很早接触的题目,整理过几次都觉得不够好。原出题人主要靠对es6语法的掌握,结果知乎大神们五花八门的答案真的刷新我对JavaScript的认识。这里,先记录长度较短的答案,以后再解释难度较大的答案。// 先创建一个长为100的稀疏数组let temp = Object.keys(Array.apply(null, {length:100}))let arr = temp.ma...转载 2018-10-28 21:16:44 · 2326 阅读 · 0 评论 -
从输入URL到页面加载发生了什么?(个人阅读笔记笔记)
文章链接:https://segmentfault.com/a/1190000006879700https://github.com/skyline75489/what-happens-when-zh_CN/blob/master/README.rst#tls这一过程大致可以分为6个部分:DNS解析TCP连接发生HTTP报文服务器处理请求并返回HTTP报文浏览器解析渲染页面连接...转载 2018-10-05 21:06:49 · 112 阅读 · 0 评论