JavaScript

【前端进阶篇】内存、内存检测工具

内存管理本文以V8引擎作为背景一、前言1. 概述内存话题有很多,本文覆盖的内容有:内存的组织形式内存的分配内存的回收(gc)内存的问题、检测、解决内存占有过多内存泄漏gc频繁卡顿2. 术语Shallow Size:Shallow size of an object is the amount of memory allocated to store the object i

Elm入门实践——类型篇

记得Facebook曾经在一次社区活动上说过,随着他们越来越多地使用Javascript,很快就面临了曾经在PHP上遇到的问题:这东西到底是啥?动态语言就像把双刃剑,你可以爱死它的灵活性,也可能因为一个小的疏忽而损失惨重。Elm选择了静态强类型,这通常也是多数函数式语言的选择,没有了OO语言中类的概念,强大的类型系统负责解决一切“这是什么?”的问题类型注解也可以叫做类型签名

业务开发情境之:文本框的base64编码图片粘贴直接上传七牛

最近在做的一个聊天消息的功能。有个图片上传的功能,可以通过按钮上传也可以通过Ctrl+V上传。按钮上传的我们可以通过七牛的API就可以做了,我们现在来说说Ctrl+V的实现是怎么样的。涉及到的APIFileReader()paste事件关于imageFile,用来把文件读入内存,并且读取文件中的数据。提供一个异步的api,使用该api可以在浏览器主线程中异步访问文件系统,读

[游戏服务器]第一章:多人聊天室-服务端

游戏服务器多人房间高并发低延时数据可靠...那么怎么去实现这些功能呢,下面我将会带着大家一起去探寻游戏服务器的奥秘我不是巨人,我只是站在巨人的肩膀上我将会分城多个章节去研究游戏服务器的开发;依旧是 自上而下,由表及内,由浅入深。第一章:解决多人房间问题准备工作新建一个git项目 game-server思考方向多人房间:进入房间的用户,可以感知到该房间内其他的用户,其他用户也

javascript中那些折磨人的面试题

前端工程师有时候面试时会遇到一类面试官,他们问的问题对于语言本身非常较真儿,往往不是候选人可能期待的面向实际的问题(有些候选人强调能干活就行,至于知不知道其中缘由是无关痛痒的)。这类题目,虽然没有逻辑,但某种程度说,确实考察了候选人对于javascript这门语言的理解。突然想到这个话题是无聊在翻自己的Github,看看以前都写过什么丑货。然后翻到了这篇解释Javascri

「JavaScript」操作数隐式类型转换

JavaScript是一个对类型非常容忍的语言,在我们编写代码的过程中,会看到许多代码直接对不同类型的操作数进行操作。有的时候这会给我们的代码的编写带来很大的方便,而有些时候这些不加检查的类型比较也会给我们的代码带来一些隐患。在调试的时候,我们如果对JavaScript自动执行的类型转换有比较清楚的了解的话,很不容易发现问题的所在点。PS: 对象→基本类型的转换规则请参考《

Amae UI Web 与 Amae UI Touch 有什么不同?一张图给你解释!

Amaze UI 推崇“一切皆组件”的组件化理念,目前它提供包含专门针对跨屏 HTML5 网页开发的 Amaze UI Web 以及针对移动端的 HTML5 混合应用开发框架 AmazeUI Touch ,在全球权威的代码托管平台上, Amaze UI 的 Star 数量超过 7000 ,名列国内开源项目前茅。 但是很多人会有疑问, Amaze UI Web 与 Amaze

JavaScript代码检查及与gulp、git的结合使用

在团队开发过程中,我们可能会要浪费一些时间在代码检查上,譬如拼写的检查、代码规范的检查。作为码农,我们当然不能把自己的时间浪费这种无意义的事情上,所以本篇我将介绍一些自动化代码检查的东西和项目实际上的应用。JSHint安装及使用JSHint是一个用于JavaScript代码静态检查的一些开源项目。他是运行与node环境,可以对我们指定的JavaScript文件进行一些静态的

Mongoose

mongoose简介是一个将JavaScript对象与数据库产生关系的一个框架,Object related model。操作对象,就是操作数据库了。对象产生了,同时也持久化(数据进入数据库)了。初步使用mongoose连接数据库var mongoose = require('mongoose');//创建数据库连接var db = mongoose.createConne

大段文本的多个关键字高亮

前几天看到有人提在网页中实时高亮关键字,大约6万多个字中高亮600个关键字,用户可以随时修改并及时高亮,也就是onkeyup时做高亮,说用正则在IE下效率不理想想了下自已给了一个实现方案:比如这段文本是:"这是一大段文本,一大段文本哦"关键字是:["这是","大段文本","哦"]首先找出最长的关键字,并把这些关键字弄成map,如:var keys = ['这是', '这里是