xuwenjiang

xuwenjiang

外面的繁华不是我的繁华

    • 主页
    • 归档
    • 标签
    • 分类

js中精度问题以及解决方案

js中的数字按照IEEE 754的标准,使用64位双精度浮点型来表示。其中符号位S,指数位E,尾数位M分别占了1,11,52位,并且在ES5规范中指出了指数位E的取值范围是[-1074, 971]。 精度问题汇总想用有限的位来表示无穷的数字,显然是不可能的,因此会出现一些列精度问

2018-03-17

jison VS PEG.js

前言如果我们需要解析一门语言。那么通常我们有3种方式: 自己实现一个parser,这种方式代价比较大。 使用仅支持解析特定语言的第三方库,但这些库通常仅支持较为流行的语言,可定制性较低。 使用一个可以生成parser的工具,这些工具被称为Parser Generator。 其

2018-03-09

jison学习笔记

最近在工作中遇到一个由js精度引发的bug:比如用户自定义了一个表单提交的校验条件SUM(a, b) <= 0.3,此时,当a=0.1,b=0.2的时候,SUM(a, b)的值为0.30000000000000004,这导致校验条件得不到满足,表单也无法提交。 原因分析这个

2018-03-03

搭建一个简单的graphql服务器

2018-02-14

装饰器和HOC

之所以把js的装饰器和react中的HOC放到一起来写,是因为这两个东西的原理是很相近的。他们都实现了在不修改函数(或react组件)本身代码的情况下,给该函数(或组件)添加一些额外行为的功能。 js中的装饰器js中的Decorator语法属于ES7(ES2016)的新特性,这里

2017-11-09

理解XSS和CSRF原理

XSS和CSRF与网络安全息息相关,这篇文章就来浅析一下这两种攻击方式的原理,以及如何防范这两种攻击。 XSSXSS,跨站脚本攻击,即Cross Site Scripting,为了和CSS不重名,所以取名为XSS。 原理XSS攻击者通过畸形的输入,将恶意的js代码插入到了页面中。

2017-10-26

HTTP缓存

Web缓存分为很多种:数据库缓存,服务器缓存(代理服务器缓存,CDN缓存),浏览器缓存。 而浏览器缓存也分为很多种:HTTP缓存,cookie,localStorage,indexDB等。这篇文章主要聚焦在HTTP缓存的部分。 为什么需要缓存?缓存可以带来很多好处,具体如下:

2017-10-14

immutable.js在react中的实践

react是一个UI=f(prop|state)的框架,通过virtual dom的diff来决定对真实dom的修改,因为操作普通的js对象,比直接操作dom更加的高效。 当一个组件的prop或者state发生变化时,这个组件将进入更新阶段,如果shouldComponentUp

2017-09-23

history实现一个前端路由

history也是HTML5新增的一个api,这里简单总结一下它的基本用法,最后探究一下使用history来实现前端路由的整体思路。 在历史记录之间穿梭history提供了几个非常方便的方法,帮助我们在浏览器的历史记录之间方便地进行切换,这相当于我们手动点击浏览器工具栏中的前进或

2017-08-29

使用File实现pdf和图片预览

HTML5为我们带来了File相关的API,现在我们可以在Web页面中访问本地文件并且将其内容展示在页面中。 比如我们时常有这样的需求,让用户点击某个按钮上传图片,在图片上传成功之后,显示上传图片的缩略图;或者用户上传pdf文件之后,可以在线浏览pdf的内容。 这里就使用了Fil

2017-07-22
123…5Next

Categories

  • graphql1
  • javascript2
  • linux4
  • node.js2
  • react5
  • 乱七八糟5
  • 前端23
  • 数据结构2

Tags

  • javascript11
  • es67
  • react5
  • linux4
  • C2
  • jison2
  • express2
  • webpack2
  • css2
  • react-redux1
  • CSRF1
  • XSS1
  • HTTP1
  • history1
  • immutable.js1
  • KMP1
  • 缓存1
  • 前端1
  • redux1
  • ajax1

Links

  • 中国海洋大学
  • 魏来
RSS

No matter who gives up, i will not.

Powered by hexo and Theme by Jacman © 2018 xuwenjiang