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。
 
 
 

Web大前端面试题-Day9的更多相关文章

  1. Web大前端面试题-Day12

    1.前端需要注意哪些SEO? 合理的title.description.keywords: 搜索对着三项的权重逐个减小, title值强调重点即可, 重要关键词出现不要超过2次, 而且要靠前, 不同页 ...

  2. Web大前端面试题-Day7

    1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...

  3. Web大前端面试题-Day6

    1.请说明ECMAScript, JavaScript, Jscript之间的关系? ECMAScript提供脚本语言必须遵守的规则. 细节和准则,是脚本语言的规范. 比如:ES5,ES6就是具体的一 ...

  4. Web大前端面试题-Day4

    1. 如何实现瀑布流? 瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽,   然后计算元素的宽度,   与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数,   里面的值 ...

  5. Web大前端面试题-Day11

    86.如何获得高效的数据库逻辑结构? 从关系数据库的表中 删除冗余信息的过程 称为数据规范化, 是得到高效的关系型数据库表的逻辑结构 最好和最容易的方法. 规范化数据时应执行以下操作: 1.将数据库的 ...

  6. Web大前端面试题-Day10

    1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...

  7. Web大前端面试题-Day8

    1. 说说你对作用域链的理解? 作用域链的作用是保证执行环境里 有权访问的变量和函数是有序的, 作用域链的变量只能向上访问, 变量访问到window对象即被终止, 作用域链向下访问变量是不被允许的; ...

  8. Web大前端面试题-Day1

    1. var的变量提升的底层原理是什么? JS引擎的工作方式是:1) 先解析代码,获取所有被声明的变量:2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到代码 ...

  9. Web大前端面试题-Day5

    1.写一个深度克隆方法(es5)? /** *  深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj  目标对象 */ function ...

随机推荐

  1. Informatic学习总结_day01

    1.forlder 必须open之后才出现  mapping的界面 2.Source Qualifer 3.小技巧 验证自己写的转换格式是否正确 提前过滤一些数据,informatica工具的本质也是 ...

  2. datatables 添加excel下载

    Datatables 版本 1.10.12 和普通datatables不一样的是: 引入包 <script src="../../vendor/datatables/js/dataTa ...

  3. ARMV8 datasheet学习笔记3:AArch64应用级体系结构

    1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...

  4. sqlserver中将查询结果拼接成字符串

    #for xml path(param)--将查询结果以xml格式输出 select id,name from table1 for xml path --id和name为table1的真实字段 - ...

  5. 【转】通过xml处理sql语句时对小于号与大于号的处理转换

    当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...

  6. BZOJ 3498: PA2009 Cakes 一类经典的三元环计数问题

    首先引入一个最常见的经典三元环问题. #include <bits/stdc++.h> using namespace std; const int maxn = 100005; vect ...

  7. 功率 dbm 和 mw 的换算

    射频知识; 功率/电平(dBm):放大器的输出能力,一般单位为w.mw.dBm.dBm是取1mw作基准值,以分贝表示的绝对功率电平. 换算公式:电平(dBm)=10lgw5W  → 10lg5000  ...

  8. Mac安装Homebrew记录

    在终端输入: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) ...

  9. JS实现数组去重(重复的元素只保留一个)

    1.遍历数组法 它是最简单的数组去重方法(indexOf方法) 实现思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中: ,,,,,,,,]; func ...

  10. noip 2017 时间复杂度

    自认为是少有的复杂的代码 这题思想很简单,就是大模拟 对于for循环,一行读入4个字符串,然后分类讨论: ①:如果是一个正常的O(n),那么累计n的指数加1 ②:如果是一个常数级别的,那么继续循环,但 ...