Javascript
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 · 597 阅读 · 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 · 501 阅读 · 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 · 165 阅读 · 0 评论 -
每日JavaScript - 18(作用域,NaN等题目)
以下为我阅读红宝书作用域链和变量对象的笔记:执行上下文(执行环境)分为全局和局部,在浏览器端全局是window对象,在node全局是global对象。每个函数都有自己的执行环境,每个执行环境中都有一个与之关联的变量对象,环境中定义的所有变量和函数都保留在这个对象中。当代码在一个环境中执行时,会创建变量对象的一个作用域链。作用域链的用途是保证对执行环境有权访问的所有变量和函数的有序访问,作用域链...原创 2018-11-28 01:02:29 · 263 阅读 · 0 评论 -
每日JavaScript之垃圾收集
被好友问到这个问题,突然发现自己知之甚少JavaScript具有自动垃圾收集机制,为此垃圾收集器会按照固定的时间间隔,周期性地执行这一操作。垃圾收集器有两种方法:标记清除和引用计数标记清除的简单原理:在运行时给存储在内存中的所有变量都加上标记,然后,它会去掉环境中的变量以及被环境中的变量引用的变量标记。而在此之后再被加上标记的变量会被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变...原创 2018-11-27 13:53:34 · 130 阅读 · 0 评论 -
每日JavaScript -20 (闭包Closure)
闭包是学习JavaScript的一大难题。所以觉得系列第20篇就来讨论闭包。https://github.com/mqyqingfeng/Blog/issues/9原创 2018-11-30 01:32:28 · 155 阅读 · 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 · 263 阅读 · 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 · 119 阅读 · 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 · 116 阅读 · 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 · 295 阅读 · 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 · 170 阅读 · 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 · 128 阅读 · 0 评论 -
每日JavaScript-29 逻辑运算符,位运算符undefined和null
// nullconsole.log(undefined || null)// 0console.log(undefined & null)原创 2019-04-28 21:19:31 · 376 阅读 · 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 · 113 阅读 · 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 · 584 阅读 · 0 评论 -
每日JavaScript-27 检查数组的方法
看到有人说、可以判断数组arr.constructor === Array这种方法存在问题,constructor属性可以改变的let arr = [0,1]arr.constructor = '123'console.log(arr === Array)这种检查方法就失效了...转载 2019-04-28 10:09:57 · 124 阅读 · 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 · 374 阅读 · 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 · 545 阅读 · 0 评论 -
每日JavaScript - 22(编程细节)
阅读《高程》第24章,发觉自己代码有听过不规范处。js更改cssJavaScript与css交互时,通过添加或者class进行交会,从而提高代码可读性。element.className = &quot;edit&quot;尊重对象所有权不要为实例或者原型添加属性不要为实例或原型添加方法不要重定义已经存在的方法避免全局量避免:let name = 'Nicholas'function sayN...原创 2018-12-11 15:30:56 · 157 阅读 · 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 · 130 阅读 · 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 · 149 阅读 · 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 · 93 阅读 · 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 · 336 阅读 · 0 评论 -
每日JavaScript之webpack4.0处理css
消失多日,因为身体不好,曾经的学习之情也消失了不少,不过我会坚持的。今天来总结一下,webpack处理css。https://godbmw.com/passage/36 这是本文参考学习的文章,非常实用。首先,选个你喜欢的目录,打开CMD。npm init一路回车,然后cd进你创建的project name,我的叫做wepack-demo然后将package.json改为{ "...原创 2018-11-14 01:06:29 · 215 阅读 · 0 评论 -
每日JavaScript - 8
面向对象都有类的概念,而通过类可以创建多个具有相同属性和方法的对象。对于Java来说,就是一门彻底面向对象的语言,有着官方的类封装。但在ES6之前,JavaScript是没有官方提供的类库。下面我们来创建一个对象let animal = { name: "animal", // 注意不能使用箭头函数,它的this指向的window // eat: () =&gt; console...原创 2018-11-06 15:53:16 · 134 阅读 · 0 评论 -
每日JavaScript - 2
昨天有点忙。就以一道比较难的题目开始旅程吧。题目:给定一个整数数组(可能包含负整数,长度大于3),求三个整数相乘最大的乘积是多少?最简单的方法是遍历所有结果再比较。这道题做得不太好,只要考虑所有情况let test = [-10, 7, 29, 30, 5, -10, -70];let test1 = [-9, -800, -110, 0, -90, -80];let test2 = ...原创 2018-11-02 03:05:51 · 150 阅读 · 0 评论 -
JavaScript实现KNN算法
这是对大神的文章自己研究记录的笔记。链接:https://www.jianshu.com/p/29ebbb12230e大神涉及的领域极多,而且内容十分有趣,建议像我这样的新手看看他的文章。算法原理KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整...转载 2018-10-27 12:53:28 · 626 阅读 · 0 评论 -
兼容各浏览器的XHR对象
这段代码出自《JavaScript高级程序设计 第三版》第521页function creatXHR(){ if (typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } else if { if (typeof arguments.callee.activeXString != "un...转载 2018-10-27 11:14:49 · 600 阅读 · 0 评论 -
重写reverse,去除数组某个元素和数组扁平化的简单实现
重写reverse,推荐大家这样写// 避免存在原方法时,将它覆盖Array.prototype.reverse = Array.prototype.reverse || function () {}下面开始重写:Array.prototype.Reverse = function () { let res = []; let i = this.length - 1; ...原创 2018-10-24 23:25:16 · 191 阅读 · 0 评论 -
每日JavaScript - 1
前言用来集中我平常遇到的JavaScript问题,或者是基本工具类的函数,或是JavaScript基础知识1.实现:var addSix = createBase(6);addSix(10); // returns 16addSix(21); // returns 27My answerfunction createBase(num) { let res = functi...原创 2018-10-31 20:57:31 · 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 · 536 阅读 · 0 评论 -
在考虑存在小数情况下,如何每隔三个数加一个逗号(JS)
function transform (number) { // 将number转为String类型 let num = number + '' // 将一个浮点数分为一个数组,第一个元素是整数部分,第二个元素是小数部分 let numArr = num.split('.') // 使用结构赋值 let [int, dotNum] = numArr...转载 2018-10-28 15:36:00 · 714 阅读 · 0 评论 -
每日JavaScript - 9
大家学习期间一定要弄清楚细节。首先从面试题开始吧。题目来源 https://juejin.im/post/5aba6cff6fb9a028c14a7df1题目一alert(a)a();var a = 3;var a = function() { alert(10)} alert(a)a = 6;a(); 请问输出什么?这个我一看就知道靠的是变量提升,而这时牢记...原创 2018-11-06 19:40:33 · 156 阅读 · 0 评论 -
每日JavaScript -10(class)
之前说过ES6引入class(类)这个概念,那我们赶快来学习一番吧。http://es6.ruanyifeng.com/#docs/class 这是阮一峰老师的ES6入门书,我觉得是学习ES6必看的书,而且它在网络开源,非常了不起,给阮一峰老师点赞。这篇文章就是阅读上面文章的简单笔记,话不多说开始。怎么使用class?//定义类class Point { constructor(x...原创 2018-11-06 22:28:49 · 605 阅读 · 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 · 184 阅读 · 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 · 125 阅读 · 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 · 494 阅读 · 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 · 164 阅读 · 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 · 92 阅读 · 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 · 266 阅读 · 0 评论