1,说说严格模式的限制
严格模式主要有以下限制:
变量必须声明后再使用
不能删除变量delete prop,会报错,只能删除属性delete global[prop]
eval不会在它的外层作用域引入变量
eval和arguments不能被重新赋值
不能使用arguments.caller
禁止this指向全局对象
不能使用fn.caller和fn.arguments获取函数调用的堆栈
2. 设立"严格模式"的目的,主要有以下几个:
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
消除代码运行的一些不安全之处,保证代码运行的安全;
提高编译器效率,增加运行速度;
为未来新版本的Javascript做好铺垫。
注:经过测试IE6,7,8,9均不支持严格模式。
3. 说说你对MVC和MVVM的理解
MVC:
View 传送指令到 Controller
Controller 完成业务逻辑后,要求 Model 改变状态
Model 将新的数据发送到 View,用户得到反馈
所有通信都是单向的。
MVVM:
组成部分Model、View、ViewModel
View:UI界面
ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model;
Model:数据访问层
4. 说说网络分层里七层模型
应用层:应用层、表示层、会话层(从上往下)(HTTP、FTP、SMTP、DNS)
传输层(TCP和UDP)
网络层(IP)
物理和数据链路层(以太网)
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
5. 什么样的前端代码是好的
高复用低耦合,这样文件小,好维护,而且好扩展。
6. 三次握手
1)客户端向服务端发送连接请求(发送SYN包,进入SYN-SEND状态)(第一次握手);
2)服务端接收到连接请求后,同意向客户端建立连接(发送ACK-SYN包,进入SYN-RCVD状态)(第二次握手);
3)客户端接收到服务端的同意后,与服务端确认建立连接(第三次握手)。
客户端和服务端就建立起了连接,可以传输数据了。
7. 四次挥手:
1)客户端向服务端发送断开连接请求(FIN=1,进入FIN-WAIT-1状态)(第一次挥手);
2)服务端接收到断开请求后,同意向客户端断开连接,但是还有数据在传输,要等数据先传输完,所以先告知客户端收到断开请求了(进入CLOSE-WAIT状态)(第二次挥手);
3)服务端数据传输完成后,告知客户端,要关闭连接了(第三次挥手);
4)客户端接收到服务端的断开连接消息后,告知服务端已收到断开连接的消息(第四次挥手);
客户端和服务端就关闭了连接。
8 .题当我们在浏览器网址中输入一个地址,点击回车后发生了什么事情。
分为两种情况,http事务和https事务。先讲http事务:
1、浏览器(客户端)进行地址解析。
2、将解析出的域名进行dns解析。
3、通过ip寻址和arp,找到目标(服务器)地址。
4、进行tcp三次握手,建立tcp连接。
5、浏览器发送数据,等待服务器响应。
6、服务器处理请求,并对请求做出响应。
7、浏览器收到服务器响应,得到html代码。
8、渲染页面。