20 Jul 2020
一、React独自做数据管理的一些问题
我们在用React做项目的时候,随着项目规模的扩大和业务逻辑越来越复杂,如果我们只用React独立做数据管理,会出现下列一些问题。
数据请求和业务逻辑混在了一起
import React, { Component, PropTypes } from 'react';
export default class PostList extends Component {
constructor(props) {
super(props);
this.state = {
l...
... ...
12 Jun 2020
express是一个相对完整的node服务端框架,自身集成了router。koa是一个相对纯粹的中间件web框架,基本只负责处理request和response、添加中间件和启动服务。其他的web相关功能都是通过中间件插拔式的集成安装进去的,所以koa的代码也非常简单,但是非常经典,体现了JavaScript函数式编程的精髓。koa还支持了Promise,Generator Function,让我们使用koa写异步编程代码十分的轻松。
一、koa中间件的添加
koa的中间件就是一个JavaScript的Function对象,参数是context和next,其中contex...
... ...
12 Feb 2020
一、填空题(共15题,每题4分。共60分)
图1
图2
一颗有N个节点的树一共有____条边.
在树的数据结构中,我们把没有子节点的节点称为树叶,那么图1中的树叶有____;具有相同父节点的节点互为兄弟节点,那么图1中E节点的兄弟节点有____.
从节点\({n}_{i}\)到\({n}_{k}\)的路径定义为节点\({n}_{1}\),\({n}_{2}\),…,\({n}_{k}\)的一个序列,使得对于\(1\le i < k\)的的节点\({n}_{i}\)是\({n}_{i+1}\)的父亲。该路径的长为该路...
... ...
31 Jan 2020
一、填空题(共20题,每题2分。共40分)
\({ X }^{ A }\times{ X }^{ B }=\) ( ).
\({ 2 }^{ N } + { 2 }^{ N }=\) ( ).
\(({ X }^{ A })^{ B}=\) ( ).
\(\frac { \log _{ x }{ B } }{ \log _{ x }{ A } } =\) ( ).
\(\log { A } + \log { B }=\) ( ).
\(\log { ({ A }^{ B }) }=\) ( ).
\(\sum _{ i...
... ...
11 May 2019
express的router实现往简单来讲就是两类数组,第一类数组全局之后一个,用于保存所有添加到app中的路由以及中间件(实际上在express中中间件也是一种路由),第二类数组用于保存每个路由上添加的中间件。
app.get('/page1', function(req, res) {});
app.post('/page2', function(req, res, next){}, function(req, res) {});
通过以上方式添加的路由调用以下代码:
// application.js
methods.forEach(function(method)...
... ...
12 Apr 2019
一、html的<script>标签上的async属性和defer属性的作用与区别。
几个基本知识点:1. 在浏览器渲染页面和执行js脚本的过程当中,为了不至于页面渲染的紊乱,GUI渲染线程和JS执行线程是互斥的,不能同时执行。 2. 浏览器读取html标签和渲染的顺序始终是从上到下顺序执行的。3. 页面引用的js脚本下载和执行分别是I/O线程和JS执行线程处理。
如果script标签上没有async属性和defer属性,当读取到script标签时,GUI线程会被挂起,然后启用I/O线程下载脚本并尽快执行,执行完毕后继续渲染后面的页面。
...
... ...
13 May 2018
一、在JavaScript中,setTimeout设定的定时任务为什么不一定准时?
考察对JavaScript异步编程和时间循环机制的了解。
当JavaScript主线程执行到setTimeout函数时,会启用定时器线程为setTimeout计时,当
到达指定的时间后会将setTimeout的回调函数放到事件循环队列中,如果此时排在该回调函数之前有比较耗时的其他事件需要执行,那么该setTimeout回调会等待较长时间从而延时。当然回调函数本身放入队列和从队列中取出也需要一定的时间,只是一般比较少可以忽略。
let current = Date.now();
setT...
... ...
09 Apr 2018
一、Node的单线程编程模型有哪些缺点?
单线程无法利用多核CPU
错误会引起整个应用退出
大量计算会占用CPU导致无法继续调用异步I/O,已调用的异步I/O回调也得不到及时的执行。
二、在Node中如何导出一个function模块。
注意模块导出时exports和module.exports的用法区别。这两个对象都是JavaScript进行模块编译后通过外层的包装函数传递给模块的。我们知道JavaScript的函数参数都是形式参数,即函数内部改变形参的引用,函数外部不受影响。所以要将模块导出成一个function就只能通过赋值形式参数module的exports...
... ...
24 Mar 2017
一、简述JavaScript语言中var、let以及const关键字定义变量的特点。
这个问题主要是考察对JavaScript语言中作用域的理解,以及对最新的ES6的语法的熟悉程度。
同时通过const关键字考察对JavaScript的栈内存和堆内存的理解。
var关键字定义的变量不支持块级作用域以及在当前作用域内存在变量提升的性质。
function f() {
console.log(a); // undefined
var a = 'a';
if (true) {
var a = 'b';
}
console.log(a); ...
... ...
13 Sep 2016
由于Js的灵活以及它和其他面向对象语言设计方式的差异,导致用一般面向对象语言的方式很难理解它,这篇文章就从三句话来了解Js。我称之为“3E箴言”。
Everything is a value
Every value is built by function
Every function has a prototype property
一、Everything is a value
在Js的世界里面,一切都是值。为什么这个很重要,我觉得这是Js区别于像Java这样的面向对象语言的最根本的因素。
在Java中,就不是一切都是值,特别是有两个重要的元素它们不是值,一...
... ...