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. 学习JS的心路历程-参数传递方式(上)

    很多人认为JS的传递方式是值是Call by value, 物件及数组是Call by Reference.甚至还有人宣称其实JS是Call by sharing,那到底是哪一个呢? 这两天我们一一来 ...

  2. Java编译时多态和运行时多态

    来源:https://blog.csdn.net/wendizhou/article/details/73733061 编译时多态:主要是方法的重载,通过参数列表的不同来区分不同的方法. 运行时多态: ...

  3. Anaconda安装及配合pycharm使用

    首先到https://www.anaconda.com/download/下载合适的anaconda版本.如Windows 64bit. 下载了直接双击开始下载,一路同意下去,到选择安装的目录.这里选 ...

  4. ftp 传输问题

    服务器配置ftp站点后,客户端机器可以下载但不能上传文件? 今天从公网的服务器连接本地内网的FTP server copy文件时,系统老是提示227 Entering Passive Mode (xx ...

  5. 微信小程序---模版

    微信小程序用的是否娴熟,会灵活使用模版很重要. 新建一个template文件,做一个step模版. <template name="top"> <view cla ...

  6. JS----获取DOM元素的方法(8种)

    什么是HTML DOM 文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展置标语言的标准编程接口.简单理解就是HTML DOM 是关于如何获取.修改.添加或删除 ...

  7. vue 路由meta作用及在路由中添加props作用

    vue路由meta:有利于我们处理seo的东西,我们在html中加入meta标签,就是有利于处理seo的东西,搜索引擎 在路由中传参是通过/:id传参代码如下: import Login from ' ...

  8. apicloud监听返回键(安卓试过)

    下面监听写在apiready里面 api.addEventListener({ //使用下方函数此处好像失效了 name: 'keyback' }, function(ret, err) { aler ...

  9. cdnbest节点如何升级

    点节点列表==>选中要升级版本的节点==>更多操作==>升级节点 点击后会显示成功,这个时候就只需要等待节点自动升级就好,升级快时几分钟,慢可能就更久点了 但也有特殊情况会升级失败, ...

  10. msf客户端渗透(六):抓包、搜索文件、破解弱口令、修改MACE时间

    嗅探抓包 查看网卡 指定网卡,因为资源有限,默认抓满50000个包如果不dump下来,就会自动销毁掉,从0开始抓. dump嗅探到的文件到本机,传递到本机的过程是结果ssl加密的 dump了两个文件 ...