随笔分类 -  javascript

deno + mongodb 实战踩坑记
摘要:自从 deno 1.0 发布以来,有关 deno 的文章很多,大多数都是在讨论怎么安装 deno 、deno 有哪些特点 、deno 和 node 有哪些异同、deno是不是 node 的替代品等。咱们今天不讨论这些,毕竟 Talk is cheap. Show me the code! 亲自体验一 阅读全文

posted @ 2020-05-21 18:57 ChessZhang 阅读(1517) 评论(1) 推荐(4) 编辑

听说会做这道题的人后来都进了头条?
摘要:写在前面 在面试的过程中,相信好多朋友都经历过一些百思不得其姐的题目,或难题,或怪题,或偏题。今天咱们一起来看一道相对偏、但其实又很基础的面试题。这道题是我的一个哥们儿,在半年前去面试字节跳动广州分公司的时候遇到的。他说当时不会做,回来后和分享的(其实是请教嘿嘿嘿~)。 知识预备 作为专业的切图仔, 阅读全文

posted @ 2019-11-12 14:36 ChessZhang 阅读(1917) 评论(4) 推荐(8) 编辑

前端图片上传那些事儿
摘要:本文讲的图片上传,主要是针对上传头像的。大家都知道,上传头像一般都会分成以下 4 个步骤: 选择图片 预览图片 裁剪图片 上传图片 接下来,就详细的介绍每个步骤具体实现。 选择图片 选择图片有什么好讲的呢?不就一个 ,然后点击就可以了吗?确实是这样的,但是,我们想要做得更加的友好一些,比如需要过滤掉 阅读全文

posted @ 2019-10-29 09:32 ChessZhang 阅读(9903) 评论(19) 推荐(49) 编辑

深入理解JavaScript事件循环机制
摘要:前言 众所周知,JavaScript 是一门单线程语言,虽然在 html5 中提出了 Web Worker ,但这并未改变 JavaScript 是单线程这一核心。可看 "HTML规范中" 的这段话: To coordinate events, user interaction, scripts, 阅读全文

posted @ 2018-09-06 14:44 ChessZhang 阅读(48372) 评论(11) 推荐(19) 编辑

redux源码解读(二)
摘要:之前,已经写过一篇 "redux源码解读(一)" ,主要分析了 的核心思想,并用100多行代码实现一个简单的 。但是,那个实现还不具备合并 和添加 的功能。 今天我们一起来看看合并 (即 ) 的原理和实现。 在分析原理之前,先来看看 的用法: 从上面的例子可以看出, 接收的参数类型是一个原生对象,其 阅读全文

posted @ 2018-08-03 20:03 ChessZhang 阅读(495) 评论(0) 推荐(0) 编辑

redux源码解读(一)
摘要:`redux` 的源码虽然代码量并不多(除去注释大概300行吧)。但是,因为函数式编程的思想在里面体现得淋漓尽致,理解起来并不太容易,所以准备使用三篇文章来分析。 第一篇,主要研究 的核心思想和实现,并用100多行的代码实现了其核心功能,相信看完之后,你会完全理解 的核心。这里甩掉 和 ,不会涉及很 阅读全文

posted @ 2018-08-02 17:45 ChessZhang 阅读(652) 评论(2) 推荐(3) 编辑

create-react-app源码解读之为什么不搞个山寨版的create-react-app呢?
摘要:最近把 vue cli@2.x 和 create react app 的源码都看了一遍。由于现在官方推荐使用 vue cli@3.0 ,改动比较大,所以就不写关于 vue cli 的了(据说是因为 vue cli@2.x 创建项目时操作有点太复杂了,于是犹雨溪大大就借鉴了 create react 阅读全文

posted @ 2018-07-24 15:33 ChessZhang 阅读(867) 评论(3) 推荐(3) 编辑

搭建一个交互式的前端构建环境.md
摘要:为了提高开发效率、减少重复的操作,现在几乎全部的前端项目都需要依赖一些构建工具来实现自动化打包,主流的有 , , 等。加上各种各样的配置文件就会形成了一个相对复杂的构建环境。一般的,我们可以把构建项目需要用到的参数写死在配置文件,但是,有些是需要动态配置的那怎么办呢?比方说,我们用 来启动本地服务器 阅读全文

posted @ 2018-04-27 21:02 ChessZhang 阅读(1170) 评论(0) 推荐(4) 编辑

初探JavaScript的截屏实现
摘要:最近参与了网易炉石盒子的相关页面开发,在做卡组分享页(地址: "炉石盒子卡组分享" ),有个需求:用户可以把这个卡组以图片的形式分享给好友。最初的的做法是使用服务器把该页面转换成图片,然后把图片地址返回给前端。嗯,这样也挺好的啊,而且服务器还可以对转换出来的图片进行缓存,下次请求可以直接返回图片地址 阅读全文

posted @ 2017-07-27 18:39 ChessZhang 阅读(10579) 评论(15) 推荐(12) 编辑

记一次前端面试经历
摘要:最近公司在做一些战略调整,部门有不少老员工前辈们都陆陆续续的离职或者被离职了。而我所在的团队——网易菠萝,也被归并到游戏运营中心了。因为产品策划还没有出来、暂时没什么需求做,闲得有点e-g-g疼的,每天从早到晚都是待在公司看看书、刷刷知乎等。我真是命途多舛啊,还没有真正步入社会,就见证了一个上百人的 阅读全文

posted @ 2017-03-09 16:11 ChessZhang 阅读(54972) 评论(57) 推荐(24) 编辑

Git使用规范
摘要:团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。为了团队研发的规范性,特制定此规范。当然不同的团队可能有着不同的约定,此规范仅供参考。 目录 1.基本原则 2.建议流程 基本原则 不到万不得已,不要跨分支提交 打开工程,拉取一次, 切换本地仓库分支,拉取一次 不要把系统临时文件,开发工 阅读全文

posted @ 2017-02-08 18:05 ChessZhang 阅读(1000) 评论(2) 推荐(2) 编辑

使用FileReader实现前端图片预览
摘要:在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片元素的src属性。 这种方法的缺点是:必须要先把图片上传到服务器。那么问题来了,如果上传的图片很大,而网速又很慢,这就需要等待很久预览图片才会显示出来了,而且,如果用户预览图片后 阅读全文

posted @ 2017-02-05 15:55 ChessZhang 阅读(9809) 评论(9) 推荐(4) 编辑

浅谈JS的数组遍历方法
摘要:用过Underscore的朋友都知道,它对数组(集合)的遍历有着非常完善的API可以调用的,_.each()就是其中一个。下面就是一个简单的例子: var arr = [1, 2, 3, 4, 5]; _.each(arr, function(el) { console.log(el); }); 上 阅读全文

posted @ 2016-06-14 17:03 ChessZhang 阅读(10905) 评论(0) 推荐(2) 编辑

浅谈JavaScript函数重载
摘要:上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面试)。面了一个多小时,自我感觉面试得很糟糕的,因为问到的很多问题都很难,根本回答不上来。不过那天晚上,还是很惊喜的接到了HR面电话。现在HR面试的结果还没有出来,听说要等到下周二才出,所以再好好等几天哈。 前面说了这多的废话,现在是时候和伙 阅读全文

posted @ 2016-05-29 10:39 ChessZhang 阅读(49410) 评论(14) 推荐(26) 编辑

随机数的组合问题(JavaScript描述)
摘要:随机数的组合问题在面试时是经常考的,比如之前我就被问到:“有一个可以生成1-5的随机数函数,怎样把它扩大到1-7?” 在解决这个问题之前,先来看看另外一个比较简单的问题:“有一个可以生成1-7的函数,怎样把它缩小到1-5?”下面是一个生成1-7函数random7: 如何把它转成生成1-5的函数呢?这 阅读全文

posted @ 2016-04-06 19:22 ChessZhang 阅读(1359) 评论(3) 推荐(4) 编辑

有趣的JavaScript隐式类型转换
摘要:JavaScript的数据类型是非常弱的(不然不会叫它做弱类型语言了)!在使用算术运算符时,运算符两边的数据类型可以是任意的,比如,一个字符串可以和数字相加。之所以不同的数据类型之间可以做运算,是因为JavaScript引擎在运算之前会悄悄的把他们进行了隐式类型转换的,如下是数值类型和布尔类型的相加 阅读全文

posted @ 2016-03-15 01:21 ChessZhang 阅读(20216) 评论(3) 推荐(10) 编辑

深入探讨JavaScript如何实现深度复制(deep clone)
摘要:在代码复用模式里面有一种叫做“复制属性模式”(copying properties pattern)。谈到代码复用的时候,很有可能想到的是代码的继承性(inheritance),但重要的是要记住其最终目标——我们要复用代码。继承性只是实现代码复用的一种手段,而不是唯一的方法。复制属性也是一种复用模式 阅读全文

posted @ 2016-02-19 10:45 ChessZhang 阅读(4176) 评论(0) 推荐(4) 编辑

JavaScript跨浏览器绑定事件函数的优化
摘要:JavaScript作为一门基于事件驱动的语言(特别是用在DOM操作的时候),我们常常需要为DOM绑定各种各样的事件。然而,由于低版本的IE的不给力,在绑定事件和移除事件监听上都与众不同,我们常常需要自己封装一个跨浏览器绑定(移除)事件的函数。跨浏览器添加(移除)DOM事件的一种非常经典的实现代码如 阅读全文

posted @ 2016-01-29 19:43 ChessZhang 阅读(1716) 评论(3) 推荐(2) 编辑

原生JavaScript实现跨域
摘要:为什么需要跨域呢?这是因为我们一般的请求都是使用xhr的,但是它只能调用同一个域里面的接口,有时候,我们想要在自己的站点中调用其他站点的接口,这时候就要用到跨域了。其实,跨域并不难,我们可以通过JavaScript的动态脚本加载技术来实现。需要注意的是,跨域是需要后台配合的。我们需要约定了一个函数( 阅读全文

posted @ 2016-01-29 01:06 ChessZhang 阅读(2450) 评论(0) 推荐(0) 编辑

JavaScript设计模式之单体模式
摘要:Gang of Four(四人帮)编著的《设计模式》一书,相信大家都很熟悉的(即使没有看过也有听说过吧)。可是,这些设计模式对于静态的、强类型的、基于类的的语言 (比如Java,C++)来说是很容易实现的,对于JavaScript这样的语言来说,可能是微不足道的或者是没必要的。 在 JavaScri 阅读全文

posted @ 2016-01-28 17:17 ChessZhang 阅读(655) 评论(0) 推荐(1) 编辑

导航