HTTP响应常见状态码
状态码
描述
100-199
成功接收请求, 要求客户端继续提交下一次请求才能完成整个处理过程
200-299
成功接收请求并已完成整个处理过程,常用200
300-399
为完成请求, 需进一步细化需求: 例如: 请求的资源已经移动一个新地址,常用302(重定向),307 和304(拿缓存)
400-499
客户端的请求有错误, 包含语法错误或者不能正确执行。 常用404(请求的资源在web服务器中没有),403(服务器拒绝访问, 权限不够)
500-599
服务器端出现错误
200
表示一切正常, 返回的是正常请求结果
302/307
临时重定向,指出请求的文档已被临时移动到别处, 此文档的新的url在location响应头中给出
304
未修改,表示客户端缓存的版本是最新的, 客户端应该继续使用它
403
禁止,服务器理解客户端请求,但拒绝处理它,通常用于服务器上文件或目录的权限设置所致
404
找不到,服务器上不存在客户端所请求的资源
500
服务器内部错误,服务器端的cgi,asp,jsp等程序发生 ...
表达式全集
字符
描述
\
将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。
^
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
$
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
*
匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。
+
匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
?
匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。
{n}
n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹 ...
this与对象原型prototypehoisting状态提升在程序执行前,编译器先由上到下逐行将代码转为机器可读的命令,然后再执行编译后的指令。
实现一个函数,可以返回输入参数是否为质数?
123456789101112131415function isPrimeNumber(m) { if (m <= 1 || m % 1 !== 0) { return false; } var n = 2; while (n < m) { if (m % n === 0) { return false; } else { n++; continue; } } return true;}
实现一个函数,如果传入的参数是字符串,则将该字符串按照字母出现的次数由大到小重新排列并输出;如果传入的参数不是字符串,则将参数输出。
...
Vue和Angular、React.js的相同点和不同点?
与React的相同:
都使用了Virtual DOM
提供了响应式和组件化的视图组件
将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。
与React的区别:
组件的响应式渲染
React的组件的数据状态发生变化时,它会以该组件为根,重新渲染整个组件子树;而Vue不只去渲染需要渲染的组件。
HTML+CSS的编写
React使用的JSX语法,将HTML、CSS和JS混写;而Vue使用的是templates模板方式,完全融合与经典的Web技术。
与Angular的区别:
与Angular 1对比,Vue的性能更加优越,Angular性能会随着watcher的增加而变慢,而且Angular中一些watcher会触发另一个更新,使得“脏检查循环”可能会运行多次。
Angular事实上必须用TypeScript来开发,而且Angular对于TS的支持非常全面,而Vue暂时对于TS的支持还在改进阶段。
Vue的体积更小,一个包含了 vuex + vue-router 的 Vue 项目 ...
判断一个变量是否为数组?
可靠地检测数组方法
1.利用Object的toString方法
12var list = [1, 2, 3];Object.prototype.toString.call(list);//[object Array]
2.利用ES5的Array.isArray()方法
12var list = [1, 2, 3];Array.isArray(list);//true
数组的原生方法有哪些?
会改变自身的方法:
copyWithin、fill、pop、push、reverse、shift、sort、splice、unshift
不会改变自身的方法:
concat、includes、join、slice、toSource、toString、indexOf、lastIndexOf
遍历方法:
forEach、entries、every、some、filter、find、findIndex
keys、map、reduce、reduceRight、values
如何将类数组的变量转化为数组?
如果是ES6,可以用Array.from()方法 ...
项目需求:1、用nodejs的socket.io写了一个简易版的聊天室(实时推送技术,无刷新实现信息实时更新,应用于在线聊天室、在线客服系统、评论系统和WebIM等)
2、根据socket.io库给出的api以及《nodejs实战》给出的demo实现了, 也只是很基础的, 但放到服务器上后会有网络延迟, 顺序不正确等问题
3、看过网上的资料, 没看到有解释很全或者投入生产环境的代码, 都是一些demo
想请教前辈, 对于一个业务开发中常用的聊天室模块:
1、应该如何去思考呢?2、整个过程会涉及到哪些知识点?3、会有哪些难点呢?(比如支持高并发啥的)4、应该注意什么呢?(比如如何测试或者啥的?)
解决方案需求分析:
实现在线聊天室的基本功能,包括显示在线用户的个人信息
用户进行实时聊天,信息推送实时更新
其他可扩展功能
技术栈分析socket.io是一个开源WebSocket库,它通过Node.js实现WebSocket服务端,同时提供客户端JS库。socket.io支持以事件为基础的实时双向通讯,可以工作在任何平台、浏览器或移动设备。
Node.js+ ...