撩课-Web大前端每天5道面试题-Day9
2018-12-17 10:47:03来源:博客园 阅读 ()
1. 请用至少3中方式实现数组去重?
方法一: indexOf var arr1=[1,2,3,4,5,4,3,2,1]; function repeat1(arr){ for(var i=0,arr2=[];i<arr.length;i++){ if(arr2.indexOf(arr[i])==-1){ arr2.push(arr[i]); } } return arr2; } 方法二: hash function repeat2(arr){ // 1. 遍历arr中每个元素,同时声明hash for(var i=0,hash={};i<arr.length;i++){ // hash中是否包含当前元素值的建 // 如果不包含,就hash添加一个新元素, // 以当前元素值为key,value默认为1 if(hash[arr[i]]===undefined){ hash[arr[i]]=1; } } // 2. 将hash转为索引 var i=0; var arr2=[]; for(arr2[i++] in hash); return arr2; } 方法三: 正则 function repeat3(arr){ return arr.sort() .join(",,") .replace( /(^|,,)([^,]+)(,,\2)*/g, "$1$2") .split(",,"); } console.log(repeat3(arr1));
2. HTTP状态码及其含义?
1XX:信息状态码 100 Continue 继续,一般在发送post请求时, 已发送了http header之后服务端将返回此信息, 表示确认,之后发送具体参数信息; 2XX:成功状态码 200 OK 正常返回信息 201 Created 请求成功并且服务器创建了新的资源 202 Accepted 服务器已接受请求,但尚未处理 3XX:重定向 301 Moved Permanently 请求的网页已永久移动到新位置。 302 Found 临时性重定向。 303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。 304 Not Modified 自从上次请求后,请求的网页未修改过。 4XX:客户端错误 400 Bad Request 服务器无法理解请求的格式, 客户端不应当尝试再次使用相同的内容发起请求。 401 Unauthorized 请求未授权。 403 Forbidden 禁止访问。 404 Not Found 找不到如何与 URI 相匹配的资源。 5XX: 服务器错误 500 Internal Server Error 最常见的服务器端错误。 503 Service Unavailable 服务器端暂时无法处理请求 (可能是过载或维护)。
3. html5有哪些新特性、移除了那些元素?
HTML5 现在已经不是 SGML 的子集, 主要是关于图像,位置,存储,多任务等功能的增加: 1) 绘画标签canvas; 2) 用于媒介回放的 video 和 audio 元素; 3) 本地离线存储 localStorage 长期存储数据, 浏览器关闭后数据不丢失; 4) sessionStorage 的数据在浏览器关闭后自动删除; 5) 语意化更好的内容元素, 比如article、footer、header、nav、section; 6) 表单控件,calendar、date、time、email、url、search; 7) webworker, websocket, Geolocation; 移除的元素: 1) 纯表现的元素:basefont,big,center,font, s,strike,tt,... 2) 对可用性产生负面影响的元素:frame,frameset,noframes
4. display: none;与visibility: hidden;的区别?
相同点:它们都能让元素不可见
不同点:
display:none;会让元素完全从渲染树中消失,
渲染的时候不占据任何空间;
visibility: hidden;不会让元素从渲染树消失,
渲染师元素继续占据空间,只是内容不可见;
display: none;是非继承属性,
子孙节点消失由于元素从渲染树消失造成,
通过修改子孙节点属性无法显示;
visibility: hidden;是继承属性,
子孙节点消失由于继承了hidden,
通过设置visibility: visible;可以让子孙节点显示;
修改常规流中元素的display通常会造成文档重排。
修改visibility属性只会造成本元素的重绘。
读屏器不会读取display: none;元素内容;
会读取visibility: hidden;元素内容
5. 如何解决跨域问题?
1) jsonp 2) iframe 3) window.name 4) window.postMessage 5) 服务器上设置代理页面
6. XML和JSON的区别?
1) 数据体积方面 JSON相对于XML来讲, 数据的体积小,传递的速度更快些。 2) 数据交互方面 JSON与JavaScript的交互更加方便, 更容易解析处理,更好的数据交互。 3) 数据描述方面; JSON对数据的描述性比XML较差。 4) 传输速度方面: JSON的速度要远远快于XML。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:js笔记2
- js调用刷新界面的几种方式 2020-03-05
- 高性能JavaScript循环语句和条件语句 2020-02-21
- Javascript实现前端简单的路由实例 2019-12-17
- 带你了解JavaScript 2019-10-29
- Nightwatch——自动化测试(端对端e2e) 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash