面试题整理

1.正则表达式(邮箱)


邮箱校验
/^([0-9A-Za-z_-])+@([0-9A-Za-z]_-)+((.[a-zA-Z0-9_-]){2,3}){1,2})$/


2.浏览器url获取参数和值
window.location对象,包含当前URL的信息。属性href整个url字符串。
location.protocol 含有url的第一部分的字符串。如http:
location.host 包含有URL中主机名:端口号部分的字符串。
location.hostname
location.port
location.pathname
location.hash
location.search  


3.前端开发模式(commonJS AMD CMD类似,requireJs sea.js)


4.webpack配置






5.subString(3,-5),subStr(-3,5)


6.web前端性能优化
 1.减少http请求{
使用css sprites
合并js和css文件
}
由于浏览器同一个host并行下载的限制,http请求越多,总体下载速度越慢
 2.使用CDN(内容发布网络):
当页面中有很多资源的时候,可以从不同服务中去读取,同时可以提高并行下载速度
如(把静态资源js css image放到静态资源服务器)
 3.添加http Expires头:为图片视频之类很少改变的资源设置长的Expires时间将直接减少http请求
如果资源设置了Expires头为将来的某个时间,下次访问时候浏览器发现资源还没过期,
会直接从缓存中读取,不会再次产生http请求。
 4.将css放在顶部
 5.将js放在底部
js会阻塞对其后面内容的呈现
js会阻塞对其后面内容的下载
 6.避免css表达式
 7.js css外联
 8.确保ajax请求遵守性能,必要时应具备长久的expries头
 9.css js规范,精简






7.5个Web前端开发常见的漏洞
  1.SQL注入漏洞的出现和修复
  2.跨站脚本攻击漏洞出现和修复(XSS)
解决方案:
1.可以在页面的输入框里面输入脚本,让其弹出弹出框,如果写一个循环的弹出框,则页面
资源会耗尽。既然是脚本,就要考虑过滤掉JavaScript的特殊符号,如<> " ' %; () & +
2. 微软反跨站脚本库(AntiXSSLibrary)是一种编码库
3.IIS短文件/文件夹漏洞出现和修复
解决方案:1.url禁止使用"~"或它的Unicode编码。
4.系统敏感信息泄露出现和修复
总结性建议:
1.在服务器与网络的接口处配置防火墙,用于阻断外界用户对服务器的扫描和探测
2.限制网站后台访问权限,如:禁止公网IP访问后台;禁止服务器使用弱口令
3.用户输入的数据进行安全检查和过滤,尤其注意检查是否包含SQL或XSS特殊字符,这些检查或过滤必须在服务器端完成
4.关闭windows的8.3格式功能
5.限制敏感页面或目录的访问权限。


8.前端模块化
requireJS  AMD
sea.js     CMD


最明显的区别就是在模块定义时依赖处理不同
1.AMD推崇依赖前置,在定义模块的时候就要声明依赖的模块
2.CMD推崇就近依赖,只有在用到某个模块的时候再去require
这种区别各有优劣,只是语法上的差距,而且requireJS和SeaJS都支持对方的写法


AMD和CMD最大的区别是对依赖模块的执行时机处理不同,注意不是加载的时机或者方式不同


很多人说requireJS是异步加载模块,SeaJS是同步加载模块,这么理解实际上是不准确的,其实加载模块都是异步的,只不过AMD依赖


前置,js可以方便知道依赖模块是谁,立即加载,而CMD就近依赖,需要使用把模块变为字符串解析一遍才知道依赖了那些模块,这也


是很多人诟病CMD的一点,牺牲性能来带来开发的便利性,实际上解析模块用的时间短到可以忽略


为什么我们说两个的区别是依赖模块执行时机不同,为什么很多人认为ADM是异步的,CMD是同步的(除了名字的原因。。。)


同样都是异步加载模块,AMD在加载模块完成后就会执行改模块,所有模块都加载执行完后会进入require的回调函数,执行主逻辑,这


样的效果就是依赖模块的执行顺序和书写顺序不一定一致,看网络速度,哪个先下载下来,哪个先执行,但是主逻辑一定在所有依赖加


载完成后才执行


CMD加载完某个依赖模块后并不执行,只是下载而已,在所有依赖模块加载完成后进入主逻辑,遇到require语句的时候才执行对应的模


块,这样模块的执行顺序和书写顺序是完全一致的


这也是很多人说AMD用户体验好,因为没有延迟,依赖模块提前执行了,CMD性能好,因为只有用户需要的时候才执行的原因
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值