撩课-Web大前端每天5道面试题-Day9
1. 请用至少3中方式实现数组去重?
方法一: indexOf var arr1=[,,,,,,,,];
function repeat1(arr){
for(var i=,arr2=[];i<arr.length;i++){
if(arr2.indexOf(arr[i])==-){
arr2.push(arr[i]);
}
}
return arr2;
} 方法二: hash function repeat2(arr){
// 1. 遍历arr中每个元素,同时声明hash
for(var i=,hash={};i<arr.length;i++){
// hash中是否包含当前元素值的建
// 如果不包含,就hash添加一个新元素,
// 以当前元素值为key,value默认为1
if(hash[arr[i]]===undefined){
hash[arr[i]]=;
}
}
// 2. 将hash转为索引
var i=;
var arr2=[];
for(arr2[i++] in hash);
return arr2;
} 方法三: 正则 function repeat3(arr){
return arr.sort()
.join(",,")
.replace(
/(^|,,)([^,]+)(,,\)*/g,
"$1$2")
.split(",,");
}
console.log(repeat3(arr1));
2. HTTP状态码及其含义?
1XX:信息状态码
Continue 继续,一般在发送post请求时,
已发送了http header之后服务端将返回此信息,
表示确认,之后发送具体参数信息; 2XX:成功状态码
OK 正常返回信息
Created 请求成功并且服务器创建了新的资源
Accepted 服务器已接受请求,但尚未处理 3XX:重定向
Moved Permanently 请求的网页已永久移动到新位置。
Found 临时性重定向。
See Other 临时性重定向,且总是使用 GET 请求新的 URI。
Not Modified 自从上次请求后,请求的网页未修改过。 4XX:客户端错误
Bad Request 服务器无法理解请求的格式,
客户端不应当尝试再次使用相同的内容发起请求。
Unauthorized 请求未授权。
Forbidden 禁止访问。
Not Found 找不到如何与 URI 相匹配的资源。 5XX: 服务器错误
Internal Server Error 最常见的服务器端错误。
Service Unavailable 服务器端暂时无法处理请求
(可能是过载或维护)。
3. html5有哪些新特性、移除了那些元素?
HTML5 现在已经不是 SGML 的子集,
主要是关于图像,位置,存储,多任务等功能的增加:
) 绘画标签canvas;
) 用于媒介回放的 video 和 audio 元素;
) 本地离线存储 localStorage 长期存储数据,
浏览器关闭后数据不丢失;
) sessionStorage 的数据在浏览器关闭后自动删除;
) 语意化更好的内容元素,
比如article、footer、header、nav、section;
) 表单控件,calendar、date、time、email、url、search;
) webworker, websocket, Geolocation; 移除的元素:
) 纯表现的元素:basefont,big,center,font, s,strike,tt,...
) 对可用性产生负面影响的元素: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. 如何解决跨域问题?
) jsonp
) iframe
) window.name
) window.postMessage
) 服务器上设置代理页面
6. XML和JSON的区别?
) 数据体积方面
JSON相对于XML来讲,
数据的体积小,传递的速度更快些。 ) 数据交互方面
JSON与JavaScript的交互更加方便,
更容易解析处理,更好的数据交互。 ) 数据描述方面;
JSON对数据的描述性比XML较差。 ) 传输速度方面:
JSON的速度要远远快于XML。
撩课-Web大前端每天5道面试题-Day9的更多相关文章
- 撩课-Web大前端每天5道面试题-Day10
1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...
- 撩课-Web大前端每天5道面试题-Day4
1. 如何实现瀑布流? 瀑布流布局的原理: ) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数; ) 创建一个数组,长度为列数, 里面的值为已布置元素 ...
- 撩课-Web大前端每天5道面试题-Day1
1. var的变量提升的底层原理是什么? JS引擎的工作方式是: 1) 先解析代码,获取所有被声明的变量: 2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到 ...
- 撩课-Web大前端每天5道面试题-Day11
1. 如何手写一个JQ插件? 方式一: $.extend(src) 该方法就是将src合并到JQ的全局对象中去: $.extend({ log: ()=>{alert('撩课itLike');} ...
- 撩课-Web大前端每天5道面试题-Day31
1.web storage和cookie的区别? Web Storage的概念和cookie相似, 区别是它是为了更大容量存储设计的. Cookie的大小是受限的, 并且每次你请求一个新的页面的时候C ...
- 撩课-Web大前端每天5道面试题-Day25
1.web前端开发,如何提高页面性能优化? 内容方面: .减少 HTTP 请求 (Make Fewer HTTP Requests) .减少 DOM 元素数量 (Reduce the Number o ...
- 撩课-Web大前端每天5道面试题-Day7
1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...
- 撩课-Web大前端每天5道面试题-Day30
1.什么叫优雅降级和渐进增强? 优雅降级: Web站点在所有新式浏览器中都能正常工作, 如果用户使用的是老式浏览器, 则代码会针对旧版本的IE进行降级处理了, 使之在旧式浏览器上以某种形式降级体验却不 ...
- 撩课-Web大前端每天5道面试题-Day23
1.为什么用Nodejs,它有哪些优缺点? 优点: 事件驱动,通过闭包很容易实现客户端的生命活期. 不用担心多线程,锁,并行计算的问题 V8引擎速度非常快 对于游戏来说,写一遍游戏逻辑代码,前端后端通 ...
随机推荐
- 2018-2019-2 20165219《网络对抗技术》Exp4 恶意代码分析
基础问题回答 实验目的 监控系统的运行状态,看有没有可疑的程序在运行 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systracer套 ...
- 音频audio,加层父级
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Leetcode 98 验证二叉搜索树 Python实现
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
- C语言数据结构之图的基本操作
本博文是是博主在学习数据结构图的这一章知识时做的一些总结,代码运行环境:visual studio2017 纯C语言 ,当然掌握了方法,你也可以试着用其它的语言来实现同样的功能. 下面的程序主要实现了 ...
- Xcode 工程文件“.xcodeproj”文件夹解析
项目.xcodeproj 文件夹底下一般有4个文件: project.pbxproj 文件 xcuserdata 文件夹 xcshareddata 文件夹 project.xcworkspace 文件 ...
- QuantLib 金融计算——随机过程之一般 Black Scholes 过程
目录 QuantLib 金融计算--随机过程之一般 Black Scholes 过程 一般 Black Scholes 过程 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib ...
- bash: wget: command not found
有些VPS执行wget命令下载时,提示-bash: wget: command not found错误,其实这是由于系统中没有安装wget,我们只要执行安装命令安装即可. yum -y install ...
- linux 多线程之间信号传递
函数 sigwait sigwait的含义就如同它的字面意思:等待某个信号的到来.如果调用该函数的线程没有等到它想等待的信号那么该线程就休眠.要达到等到一个信号,我们得做下面的事: 首先,定义一个信号 ...
- 网络基础 09_STP生成树协议
1 STP概念 冗余拓扑结构 冗余拓扑结构能解决单点故障的问题 冗余拓扑结构会引起广播风暴,多帧COPY,MAC地址表错误的问题 广播风暴 当主机X发送一个广播包后 交换机继续没完没了的更新广播流量 ...
- Codeforces Round #556 (Div. 2)-ABC(这次的题前三题真心水)
A. Stock Arbitraging 直接上代码: #include<cstdio> #include<cstring> #include<iostream> ...