前端面试问题js汇总

时间:2022-09-20 17:18:04

1.javascript的typeof返回哪些数据类型

  Object number function boolean underfind

2,数组方法pop() push() unshift()shift()

  shift()Push()尾部添加 pop()尾部删除
  Unshift()头部添加 shift()头部删除

3,事件绑定和普通事件有什么区别?

  1.执行顺序不一样、
  2.参数不一样
  3.事件加不加on
  4.this指向问题

  普通添加事件(onclick)的方法不支持添加多个事件,最下面的事件会覆盖上面的,而事件绑定(addEventListener)方式添加事件可以添加多个。

4,IE和标准下有哪些兼容性的写法

  Var ev = ev || window.event
  document.documentElement.clientWidth || document.body.clientWidth
  Var target = ev.srcElement||ev.target

5,ajax请求的时候get 和post方式的区别

  get放在url后面,post 放在虚拟载体里面
  get请求有大小限制
  安全问题 (参考链接:https://zhuanlan.zhihu.com/p/22536382

6,什么是事件委托?

  利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

  1,预绑定在document上

  2,live可以对未生成的dom预先绑定事件

  事件解除绑定

  on---off
  live---die
  bind---unbind

7,添加 删除 替换 插入到某个接点的方法

  createDocumentFragment() //创建一个DOM片段
  createElement() //创建一个具体的元素
  createTextNode() //创建一个文本节点

  appendChild() //添加
  removeChild() //移除
  replaceChild() //替换
  insertBefore() //之前插入

 
  getElementsByTagName() //通过标签名称
  getElementsByName() //通过元素的Name属性的值
  getElementById() //通过元素Id,唯一性

8,javascript的本地对象,内置对象和宿主对象

  本地对象为array obj regexp等可以new实例化
  内置对象为gload Math 等不可以实例化的
  宿主为浏览器自带的document,window 等

9,window.onload 与document.ready的区别

  window.onload在dom文档加载完成和所有文件加载完后执行

  document在dom文档树加载完后执行。

10,javascript的同源策略

  一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

11,请描述一下cookies,sessionStorage和localStorage的区别

  sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此    sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

web storage和cookie的区别

  Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。
除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。但是Cookie也是不可以或缺的:  

Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生。

12,跨域请求资源的方法有哪些?

  由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域(参考文档:http://www.jb51.net/article/98927.htm)

  1.JSONP:无法发送post请求,且请求成功与否不好判断,大部分是结合超时时间判断的。

  2.proxy代理:获取信任证书

  3.cors

  4.xdr:IE8、IE9提供的一种跨域解决方案,功能较弱只支持get跟post请求,而且对于协议不同的跨域是无能为力的

13,开发过程中遇到的内存泄露情况

  在url后面加随机数,避免每次都从缓存取数据,而能够从服务器端拿数据。

14,一次完整的HTTP事务是怎样的一个过程?

  基本流程:

  a. 域名解析

  b. 发起TCP的3次握手

  c. 建立TCP连接后发起http请求

  d. 服务器端响应http请求,浏览器得到html代码

  e. 浏览器解析html代码,并请求html代码中的资源

  f. 浏览器对页面进行渲染呈现给用户

15,javascript的垃圾回收机制?

  Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。

  原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。

  JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃圾回收器会按照固定的时间间隔周期性的执行

  不再使用的变量也就是生命周期结束的变量,当然只可能是局部变量,全局变量的生命周期直至浏览器卸载页面才会结束。局部变量只在函数的执行过程中存在,而在这个过程中会为局部变量在栈或堆上分配相应的空间,以存储它们的值,然后在函数中使用这些变量,直至函数结束,而闭包中由于内部函数的原因,外部函数并不能算是结束。

16,https是如何加密的?

  https是在http的基础上多了一次协议ssl,该协议用来给传输的内容进行加密。

17,谈谈对mvc mvvm的理解?

  mvc:model(数据模型)  view(视图) controller(控制器)。controller作为model和view之间的通信者。

  MVC的通信是单向的:
    浏览器发送请求
    Contorller和Model交互获取数据
    Contorller调用View
    View渲染数据返回
更简单的表达式:V -> C-> M -> C -> V
 
MVVM(Model-View-ViewModel),是一种基于前端开发的架构模式。
  核心是提供对View 和 ViewModel 的双向数据绑定,View和Model之间并没有直接的联系,而是通过ViewModel进行交互,View的变动,自动反映在ViewModel上,反之亦然,这样就保证视图和数据的一致性。viewModel用于同步model和view。这样使得开发者只需要关注业务逻辑,不需要操作dom,不需要关注数据层面的改变。

18、什么叫优雅降级和渐进增强?

渐进增强 progressive enhancement:
针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

优雅降级 graceful degradation:
一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

区别:

a. 优雅降级是从复杂的现状开始,并试图减少用户体验的供给

b. 渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要

c. 降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带

19,写出几种IE6 BUG的解决方法

  1.双边距BUG float引起的 使用display
  2.3像素问题 使用float引起的 使用dislpay:inline -3px
  3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
  4.Ie z-index问题 给父级添加position:relative
  5.Png 透明 使用js代码 可以改用gif图片。
  6.Min-height 最小高度 !Important 解决’
  7.select 在ie6下遮盖 使用iframe嵌套
  8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)

20,闭包是什么,有什么特性,对页面有什么影响?

  函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包

  闭包的特性:

  ①.封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;
  ②.持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在
  系统中,闭包中的数据依然存在,从而实现对数据的持久使用。

  优点:

  ① 减少全局变量。

  ② 减少传递函数的参数量

  ③ 封装;

  缺点:
   使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等.

前端面试问题js汇总的更多相关文章

  1. 2019前端面试系列——JS面试题

    判断 js 类型的方式 1. typeof 可以判断出'string','number','boolean','undefined','symbol' 但判断 typeof(null) 时值为 'ob ...

  2. 2019前端面试系列——JS高频手写代码题

    实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

  3. 前端面试(原生js篇) - DOM

    根据我的面试经历,一般小公司的面试环节,比较关心框架的熟练程度,以及独立开发组件的能力 但大厂通常有五轮以上的面试,而且对 js 基础语法很是看重 于是我总结了一些关于 js 基础的面试对话,有的当时 ...

  4. (转) 前端面试之js相关问题(一)

    原帖地址:http://stephenzhao.github.io/2016/08/19/Front-end-Job-Interview-Questions/ 最近我也是经历过面试别人和去面试的人了, ...

  5. 【面试问题】—— 2019.3月前端面试之JS原理&CSS基础&Vue框架

    前言:三月中旬面试了两家公司,一家小型公司只有面试,另一家稍大型公司笔试之后一面定夺.笔试部分属于基础类型,网上的复习资料都有. 面试时两位面试官都有考到一些实际工作中会用到,但我还没接触过的知识点. ...

  6. 前端面试(原生js篇) - 精确运算

    一.面试题 问:开发的时候有用到过 Math 吗? 答:很多啊.比如生成 GUID 的时候,就会用到 Math.random() 来生成随机数. 问:别的呢?比如向下取整.向上取整? 答:向下取整是  ...

  7. 前端面试问题css汇总

    1,行内元素有哪些?块级元素有哪些?空元素有哪些?CSS的盒模型? 块级元素:div p h1 h2 h3 h4 form ul li 行内元素: a b br i span input select ...

  8. 前端面试问题html汇总

    1.对WEB标准以及W3C的理解与认识 结构层 html :表示层  css:行为层:js; 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索机率.使用外链css和js脚本.结构行为表现的分离.文件下 ...

  9. web前端面试系列 - js中的prototype

    js中一切皆为对象,其中函数也是一种对象, 而每个函数都有一个prototype属性,其值也是一个对象. 一.prototype的作用 1. 在多个实例对象之间共享数据和方法. 2. 通过原型链实现继 ...

随机推荐

  1. 为什么 MySQL 回滚事务也会导致 ibd 文件增大?

    一个简单的测试: start transaction; insert into tb1 values(3, repeat('a', 65000),'x',1); --commit; rollback; ...

  2. a questions

    1.2520 is the smallest nuber that can be diveded by each of the number from 1 to 10 without any rema ...

  3. AJAX文件上传实践与分析,带HTML5文件上传API。

    对于HTML5已经支持AJAX文件上传了,但如果需要兼容的话还是得用一点小技巧的,HTML5等等介绍,先来看看以前我们是怎么写的. 网上可能会有一些叫AJAX文件上传插件,但在AJAX2.0之前是不可 ...

  4. cookie和浏览器

    XHR API允许应用添加自定义的HTTP首部(通过setRequestHeader()方法),同时也有一些首部都是应用代码不能设定的. Accept-Charset.Accept-Encoding. ...

  5. Scene视图辅助线绘制

    有时候需要在Scene视图中绘制一些辅助线,方便进行一些编辑的工作,可以通过如下类和函数完成: 绘制辅助线,相关类: Gizmos类:用于在Scene视图中绘制调试信息或辅助线,这些辅助线只有在Sce ...

  6. VIM编辑器常用功能整理笔记

    vim编辑器 vi : visual Inertface 可视化接口 vim : vi improved 扩展版 语法着色 模式化编辑器: 编辑模式(命令模式): 默认模式 输入模式: 末行模式: 等 ...

  7. 6.struts登陆页面的演示

    1.创建一个web project "Struts_1" 添加struts的jar包 --在项目文件右键->myeclipse->add struts...       ...

  8. 开始制作国产的 scratch

    首先分析下API和数据格式: https://api.scratch.mit.edu/proxy/featured  GET   23.235.37.162:443 返回数据与对应栏目: commun ...

  9. Centos 6修复/boot目录及fstab等系统文件

    author:JevonWei 版权声明:原创作品 错误界面 系统修复过程中,若需要修复fatab挂载文件,磁盘分区为lvm逻辑卷格式,则默认在修复模式下处于不可活动状态,需使用vgchage -ay ...

  10. Spring+Quartz实现定时任务的配置方法(转)

    1.Scheduler的配置 <bean id="myScheduler" class="org.springframework.scheduling.quartz ...