随笔分类 - JS
JS基础
摘要:这个问题的起因:review公司项目的时候,发现很多如下的代码(mock) 先是一个工具类Util.ts class NumberUtil { static ToInt(num?: Number): number { num = num || 0; return Math.floor(num); }
阅读全文
摘要:本文简述如何在TypeScript下实现AOP (aspect oriented programming) 面向切面编程。 什么是AOP,我的理解是将特定功能的代码切入到某个已经封装好的对象、类或函数的执行过程中。 之前的一篇文章讲述过如何用decorator、高阶函数实现aop。这里再追加一种实现
阅读全文
摘要:什么是编程范式(programming paradigm)? 编程范式是依据编程语言的特征对其分类的方式。 Programming paradigms are a way to classify programming languages based on their features. 申明式与指
阅读全文
摘要:JS解构的用法想必大家都知道,但解构时可以赋予别名大家就不一定都了解了。 起因:在公司项目中希望通过传入的参数动态生成组件标签。 解决方式:对入参解构,赋予别名,并使用别名作为组件标签。 先解释JS中解构的别名 const obj = { x: 1 }; //otherName为x的别名 const
阅读全文
摘要:Performance中的LCP (Largest Contentful Paint),根据官方定义,就是页面中Size最大区域的渲染时间。 https://web.dev/lcp/ 所以,如果页面中有些区域(比如一个复杂的控件)渲染时间较久,一定要有比它更大的区域可以快速渲染。 比如以下例子: 三
阅读全文
摘要:关于require和import,先明确一些基础概念 1:require属于commonjs(ES5)规范,import属于ES6规范。 2:require/export 一般用于服务端(NodeJS)开发。 import由于是ES6规范,需要使用babel-loader转换为require 3:浏
阅读全文
摘要:我们知道React中的Class组件,其事件处理函数要么bind(this),要么用箭头函数( ()=> ),否则this指针会是undefined 原因如下: class Logger { printName(name = 'there') { this.print(`Hello ${name}`
阅读全文
摘要:1:Object.assign() 把source对象中所有可枚举的属性copy到target对象中。 可以用来合并两个对象的属性。 const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const returnedTarget
阅读全文
摘要:问题1 :ES6中的class 与 ES5中function的关系 ES6 中: class Person { constructor(name) { this.name = name; } sayHello() { return 'hello, I am ' + this.name; } } va
阅读全文