暂时未有相关云产品技术能力~
他强由他强,清风拂山岗;他横由他横,明月照大江;他自狠来他自恶,我自一口真气足;
内存管理:申请 -> 使用 -> 释放 垃圾回收:不可达对象(没有使用到且不可访问到的对象)就是垃圾对象,会被JS垃圾回收引擎自动回收。 GC算法:不可达对象的内存空间会被GC算法回收。大概是这四种算法 引用计数、标记清除、标记整理、分代回收。 性能优化:细节上的留心,使程序更自信。
前端面试 无非就是 CSS + JS + 框架 + 工具 + 源码 + 算法 + 职业规划 + 实战,这篇文章以及接下来的文章也是围绕这些内容依次展开。 说到JS,它非常的强大,除了在页面中运行js,还有在服务器中运行的node.js,以js的构建工具等等,但是我在这篇文章中并不会去说那些js的扩展,比如多端应用、服务器端框架部分、小程序等等东西,还是说说通用的以及基础的部分吧。 首当其冲的是 作用域、闭包、面向对象的this指向以及多种创建方式呀继承方式呀、ES6的语法以及promise和async呀await呀,还有与HTML有关的JS DOM呀,和网络有关的 HTTP、NodeJS呀
vue的生命周期是官方公布的一系列的钩子,其实你只需要知道这些钩子在什么时候使用就可以了。但是有时你会发现,给子组件传值传一个复杂对象的时候,感觉明明传了,但子组件中遍历取值的还是会报错,甚至需要在子组件中去做if else之类的判断。 当然如果你给子组件设置props时加上合适的数据类型以及默认值,那么也没多大事儿,但是这是基于vue生命周期出现的问题,也许你了解了这个生命周期后,可以更优雅的解决这个问题噢。
React 就干两件事,打造用户界面,响应各种事件。16.0版本提出fiber,16.8版本提出hooks。 React原来是php项目,后来改了编译器,换成js来编译,然后加入虚拟dom。所以React只做两件事,一件事是渲染ui,一件事是响应事件。mvc和mvvm都是早些年angular的设计理念。react并不是什么mvvm和mvc,它只是一个很小的东西,只做那两件事儿。它只是个工具。backbone才是真正的mvc,它是模仿java的spring,挪到前端来了。
91题**解码方法**的难度属于中等,但其涉及到的知识并不少呢,斐波那契、备忘录剪枝、动态规划等等,除了题解之外,我也会深入浅出的讲解这些知识点,文章末尾我还会使用 正则 + 斐波那契的写法来解题,我们一起来看看。
Mock.js**模拟数据**的强大,相信不少朋友都能感受到,它帮助我们更快地“模拟”我们所要各种数据。那么,它怎么知道我们需要什么内容的数据嘞?它又是如何工作的?在这篇文章里,我们一起来看看。
Echarts**可视化工具**的强大,相信不少朋友都能感受到,它帮助我们更快地“搭建 ”我们想要的可视化图表应用。那么,它怎么知道我们需要什么样的图表?它又是如何工作的?在这篇文章里,我们一起来看看。
爬虫是**非常的**的强大,相信不少朋友都有所耳闻,它帮助我们更快地“获得”我们所要关键数据。那么,它怎么知道我们要需要什么内容?它又是如何工作的?在这篇文章里,我们一起来看看。
前端面试 无非就是 CSS + JS + 框架 + 工具 + 源码 + 算法 + 职业规划 + 实战,这篇文章以及接下来的文章也是围绕这些内容依次展开。 说到CSS,它现在已经非常的强大,已经支持了许多PS一般的功能了,但是我并不会去说那些部分东西,还是说说通用的或者基础的部分。 首当其冲的是 BFC、弹性布局、垂直居中、移动端/响应式、css预处理、三角和缩放、大屏自适应。
过去有很多次文件下载的功能,但是都没有记录下来,这次有空就把文件下载的功能从0写一遍,于是就有了这篇文章。 我会从简到难的方式去实现下载功能。从直接下载字符串到简单请求下载文件,最终通过后端返回的文件名来实现动态下载文件。
读了前三章,了解了虚拟dom的局部更新的设计思路,也知道了vue这个框架的开发体验、框架体积控制、剔除无用代码、不同资源输出格式、特性开关、错误处理、TS支持等等,它们互相配合,从而大大的降低了开发者的心智压力,这些也是衡量一个框架的质量指标,vue做的很好。 vue3中通过声明式的模板UI,编译器将模板或组件转成虚拟dom,再由渲染器转成真实dom,编译器中做了优化,从而使得渲染器能够更快找到变更的元素,性能上得到了很大的优化。
vscode的用户片段非常的方便,比如我想规范注释、快速生成代码呀,vscode的用户片段都可以帮我实现,而且是那种非常定制化去实现。定义好片段后,你还可以通过脚手架去生成一个vscode插件,并不复杂。
本篇文章记录的是上手react并做好一个React项目的大概知识点,比如antd、transition、redux、react-redux、middleware、reducer、router、hooks等等。
本篇文章记录的是上手react并做好一个React项目的大概知识点,比如jsx本质、生命周期、组件嵌套、父子通信、组件通信、插槽机制、跨组件通信、setState、react性能优化、ref、受控和非受控组件、高阶组件、React中使用样式。
react 是一个视图层的类库,主要是做dom渲染和响应事件的事情,如果想更高的把控它,可以有脱离基础语法束缚的哲学,从而能够站的更高。
在vue和react中都有用到使用vdom来进行渲染界面,在页面刚创建的时候使用vdom来渲染界面性能并没有直接使用dom操作来渲染页面好,但是在更新界面的时候使用虚拟dom比直接使用dom操作要性能好,当然你如果原生dom操作非常熟练、经验也非常丰富,可能也有例外,不过那么多原生dom操作也会有比较大的心智压
第二章了解了一个框架设计的核心要素,vue在这方面表现很不错。 开发体验、框架的体积、输出的资源格式、特性的开关、错误的处理、类型支持等等,vue都有考虑。
第一章我已经觉得有所收获了,写的很精彩,接下来就是第二章了,框架设计的核心要素,应该是框架的大体轮廓的介绍吧。 构建产物、模块格式、警告信息、定位问题、开发和生产的区别、热更新的支持、树摇(去掉框架中没用到的功能代码)。
权衡的艺术,看到这个名字,我瞬间脑袋就像个灯泡一样,瞬间一亮。我喜欢,我很想知道vue权衡的艺术,就像上帝为什么要造人一样的艺术(狗头)。好了,开始。
设计思路: 要有一个待迭代的数据对象,存放原始数据。 要有一个对迭代器行为进行封装的class,在这个class中可以定义遍历对象的一些行为。 要有一个获取指定数据对象迭代器操作类,在这个操作类中就直接拿到指定的迭代器。当然你在初始化的时候你可以传入待迭代的数据对象,也可以在操作类中追加待迭代的数据对象的子项。
谷歌浏览器的并发数是6个,有六个请求正在处理,那么其它的任务就会排队,等六个请求任务中的某一个完成之后,就会立马插入进去执行。这样一来,就清楚了。
github的actions是一个持续集成的工具,类似java的jekins,actions中需要编写流水线脚本,脚本并不难,只是环境的熟悉。github pages 是一个静态网站服务,只要你按照特定规则在指定的仓库或者分支上存放html代码,就可以通过特定规则的url去访问到该静态页面网站,很方便。
js中的number类型采用的是64位浮点数,也就是js中的整数、小数统统都是浮点数噢。
访问者模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
中介者模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
解释器模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
命令模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
备忘录模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
迭代器模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
状态模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
职责链模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
策略模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
模板方法模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
观察者模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
外观模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
组合模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
享元模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
适配器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
装饰器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
代理模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
桥接模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
单例模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
原型模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
建造者模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
抽象工厂模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
工厂方法模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
死记是没有用的,正如教条主义式的生搬硬套没有多少作用,理解了才能举一反三、灵活运用。 我们可以再弄清楚十大原则:单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则、 迪米法特原则、组合聚合复用原则、不重复你自己、尽量保持简单、不过度设计。
## 为什么面向对象 说到为什么要面向对象,自然先说说最入门的面向过程,将面向过程与面向对象进行一下对比。 ### 面向过程 一个人生活,什么事儿都需要自己做,比如说洗衣服这件事儿。 ### 面向对象 两个人生活,有的事情只需要找个人做就可以了,还是洗衣服这件事儿。
`O(n^2)`的排序算法并不是最优的,最优的排序算法是 `O(nlogn)` 。 `O(n^2)`的排序算法相对是比较基础的,因为它是最简单的求解思路,在面临一个问题的时候,都会先尝试用最简单的方法去解决它,这个过程能够加深对问题本身的理解,从而提出更加复杂的解法,或者来优化最开始简单的解法。 对于一些问题,如果你没有思路的话,先拿出最简单的解法,虽然这个解法可能在效率上有一些问题,先将你这个解法摆出来,在这个过程中你可能会想到一些优化的地方,同时面试官也会看到你解题的路径,这也是一种非常好的解题思路。 并非是在所有的场合都去使用 `O(nlogn)`级别的排序算法的。编码简单,易于
堆(Heap)是一种树结构,线段树(Segment Tree)也是一种树结构,它也被叫做区间树(Interval Tree)。