ES6 Module是官方推出的JS模块方案,随着babel,TypeScript,SPA的盛行,这个技术也用的再熟悉不过了,但有时还是会写错。反思错误,觉得是对其认识理解的还不够彻底,这里就Mark下。

如图即是有时出现的写法错误

  • 首先这个错误是TS编译器报的,属于编译报错,与Lint报错不同,lint报错会告诉具体违反的规则,而编译报错会是ts(code),这点需要区分开来

  • 错误中code-1128与本身我们所编写的程序文件无关,是编译器内部的,翻看TypeScript源码果然找到了相关语句。因此假如遇到TS编译报错看不懂,可以以此Code辅助进行相关问题检索。

    1
    2
    3
    4
    5
    6
    7
    Declaration_or_statement_expected: diag(1128, ts.DiagnosticCategory.Error, "Declaration_or_statement_expected_1128", "Declaration or statement expected."),


    function diag(code, category, key, message, reportsUnnecessary, elidedInCompatabilityPyramid, reportsDeprecated) {
    return { code: code, category: category, key: key, message: message, reportsUnnecessary: reportsUnnecessary, elidedInCompatabilityPyramid: elidedInCompatabilityPyramid, reportsDeprecated: reportsDeprecated };
    }

阅读全文 »

前端开发大多时候并没有用到Proxy,但是不代表其没有价值,而是没有掌握它。于是,这里梳理下。

元编程

MDN将Reflect,Proxy归类于元编程,那什么是元编程呢。

元编程(英语:Metaprogramming),又译元编程,是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的资料,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相比,程序员可以获得更高的工作效率,或者给与程序更大的灵活度去处理新的情形而无需重新编译。

以上摘自WIKI,我们可以知道元编程是编程领域的一个概念,非JS所特有。

阅读全文 »

CSRF相较XSS名气小了点,但也是常见安全问题之一,且属于高危漏洞。借着空闲时间,梳理下。

概念

CSRF(Cross Site Request Forgery),中文意思跨站请求伪造,是一种冒充受信任用户,向服务器发送非预期请求的攻击方式。

举例

阅读全文 »

web性能优化能做的事情很多,比如压缩JS体积大小, 比如降低HTTP请求次数,比如CDN优化关键资源请求速度等等。其中一个优化点事降低重排重绘次数,这里总结下。

渲染流水线

上图摘自李兵老师的《浏览器工作原理与实践》

实践方法

阅读全文 »

前端资源都会发送到浏览器端或者客户端,那么这些WEB资源尤其是JS如何最大程度的保护呢,毕竟辛苦开发的代码属于商业项目,如果被别人完整剽窃了甚是可惜,于是就需要利用一些手段来做控制。
最终都是尽可能的提高安全门槛儿,提高别人剽窃的成本。

以下为我在实际项目中总结的点

  1. 生产模式打包,去掉调试方面的信息

  2. 压缩CSS,HTML,JS

  3. CSS名称增加哈希值

  4. JS类名及函数名称压缩,替换为不表意字母等

    • 比如利用terser

  5. 一定程度的代码混淆,注入一些混淆代码

0%