当前位置: 首页 > news >正文

撩课大前端-面试宝典-第九篇

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。

复制代码

相关文章:

  • C# 后台获取前台交互判断
  • 《转》完美解决微信video视频隐藏控件和内联播放问题
  • 微信浏览器播放音频的问题:preload属性
  • Java并发编程之锁机制之(ReentrantLock)重入锁
  • Python:asyncio模块学习
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • python学习记录-打印九九乘法表
  • Oracle数据库查看表空间是否为自增的
  • 将excel项目管理融入生活
  • Python正则表达式的7个使用典范
  • 线程组之间的JMeter传递变量
  • PIP总结
  • gulp压缩合并js与css
  • testng.xml 配置大全
  • 解决Mysql数据库提示innodb表不存在的问题!
  • (三)从jvm层面了解线程的启动和停止
  • 【前端学习】-粗谈选择器
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Android组件 - 收藏集 - 掘金
  • JDK 6和JDK 7中的substring()方法
  • Protobuf3语言指南
  • Redis学习笔记 - pipline(流水线、管道)
  • 闭包--闭包之tab栏切换(四)
  • 大整数乘法-表格法
  • 分享一份非常强势的Android面试题
  • 深入浅出webpack学习(1)--核心概念
  • 微信开源mars源码分析1—上层samples分析
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​你们这样子,耽误我的工作进度怎么办?
  • #Java第九次作业--输入输出流和文件操作
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $refs 、$nextTic、动态组件、name的使用
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (二)丶RabbitMQ的六大核心
  • (转载)Google Chrome调试JS
  • ./和../以及/和~之间的区别
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .gitignore文件---让git自动忽略指定文件
  • .Net 4.0并行库实用性演练
  • .NET 8.0 发布到 IIS
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .考试倒计时43天!来提分啦!
  • [bzoj1324]Exca王者之剑_最小割
  • [C/C++]数据结构----顺序表的实现(增删查改)
  • [codevs] 1029 遍历问题
  • [C语言]编译和链接
  • [docker] Docker容器服务更新与发现之consul
  • [ESP32 IDF]web server