zoukankan      html  css  js  c++  java
  • 前端面试汇总

    1,cookie和session的应用场景和区别?

      cookie存于客户端,session存于服务器端。

      cookie应用场景:1,判断用户是否登录过网站;2,使用cookie来记录购物车,或者记录用户使用偏好来制定推送

      session应用场景:1,登录验证信息

      有效期不同 

      sessionStorage: 仅在当前浏览器关闭前有效 
      localStorage:始终有效 
      cookie:过期之前有效

      作用域不同 
      sessionStorage在打开的不同浏览器窗口不共享,即使同一页面 
      localStorage 在同源页面共享 
      cookie 同源页面共享

    2,用户登录的实现?

      校验用户名,密码。用户信息存储在session中。

    3,for(var i=0; i<10; i++){} alert(i);

      10 

      解释:for循环没有形成一个块级作用域,js设计的缺陷。可以采用es6 的let定义变量。let 定义的变量是块级作用域,函数内部对外部无影响。

    4,JSONP原理 

      Ajax存在不能跨域请求数据的问题。而Web上调用js是不受跨域影响的。因为JSON数据格式恰好被Js支持,web客户端通过调用跨域服务器上动态生成的Js,从而达到跨域请求到JSON包的需求。 为了便于客户端调用JSON数据,形成了非正式的传输协议,也就是JSONP。 客户端传一个callback参数给跨域服务器,跨域服务器返回一个以callback为函数名包裹的JSON数据,这样客户端就可以处理跨域得到的JSON数据了。

    5,问题:

      var a = {n: 1} var b = a; a.x = a = {n: 2}; console.log(a.x); console.log(b.x); 

      (a.x)->undefined 
      (b.x)->[object Object ] 

    6,bom,dom分别是什么?

      bom:浏览器对象模型

      dom:document

    7,请说明下面各种情况的执行结果,并注明产生对应结果的理由。 

      function doSomething() { 
        alert(this); 
      } 
      ① element.onclick = doSomething,点击element元素后。 
      ② element.onclick = function() {doSomething()}, 点击element元素后。 
      ③ 直接执行doSomething()。**

      1)弹出element object,通过函数赋值方式,this直接指向element对象; 
      2)弹出window object,this是写在doSomething这个函数里面的,而这种方式的事件绑定写法并没有将element对象传递给this,而在默认情况下this 指向window; 
      3)弹出window object,没有绑定对象的情况下this默认指向window。

    8、请用JavaScript语言实现 sort 排序函数,要求:sort([5, 100, 6, 3, -12]) // 返回 [-12, 3, 5, 6, 100]。 

      var arr = [5,100,6,3,-12];

      var result = arr.sort(function(a,b){

        return a-b;

    })

    console.log(result);

    9,前端性能优化的方式有哪些?

      1,减少http请求,合理设置http缓存

      2,使用浏览器缓存

      3,启用压缩

      4,雪碧图合并css图片,减少图片请求数量

      5,css放在页面顶部,js放在页面底部

      6,减少cookie传输

      7,减少dom查找,用变量缓存

      8,避免使用eval,eval函数效率特别低

      9,减少作用域链查找

    10,阐述基础数据类型和引用数据类型的区别?

      1.内存使用:基本数据类型直接存放在栈内存里。而引用类型则是,内容存放在栈内存,地址存放在堆内存,访问时通过堆内存的地址找到栈内存的内容。

      2.变量赋值:基本数据类型是直接把值赋给变量。而引用类型是,把值的地址复制给新变量,通过地址再找到内容。

      基础数据类型:数值,字符,布尔

      引用数据类型:类,数组

    11,for click的闭包问题?如何解决?

      形成闭包。

      参考链接:http://blog.csdn.net/yuli_zoe/article/details/43305855

    12,跨域是什么?为什么会出现跨域的问题?跨域有什么解决方案/

      1,跨域,顾名思义。不同域名之间的访问。之所以会出现跨域的问题,主要是因为浏览器的安全访问机制,限制了不同域名之间的相互访问。

      解决方案:1,关闭浏览器的跨域安全设置。2,html5的postMessage支持跨域传输。postMessage(data,origin)。data:传输的数据,origin:目标窗口的源。

    13,浏览器内核的作用?

      1,帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用户所见的视图。渲染引擎:渲染css 。js引擎。jscore  谷歌:v8

    14,304错误?

      服务器告诉客户端原来缓存的文件有效,可以使用。

    15,null和underfined的区别?

      在if语句中都直接转换成false。

      null==underfined 但 null!==underfined

      type of  null  是对象  type of underfined  为 'underfined'

      null 在数值计算中转换成0。underfined在数值计算中返回未NaN

      undefined表示变量声明但未初始化时的值,

      null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。

    16,html5和html4声明的区别?

      html5:doc type Html  不用声明DTD

      html4 :需要声明DTD

    17,判断浏览器的版本号,版本名称

      版本号:navigator.appVersion

      版本名称:navigator.appName

    18,常见的js框架,css框架。

      js框架:angular.js,vue.js,react

      css框架:bootstrap,easyui

  • 相关阅读:
    QT::目录/文件
    QT::标题栏/目录/托盘/工具条/状态栏
    QT::布局
    PHP 发送http请求
    php 图片缩放然后合成并保存
    PHP 打开已有图片进行编辑
    一些实用的方法整理(与语言无关)
    PHP 与pdf文档 与条码
    Excel导入遇到的问题An object with the same key already exists in the ObjectStateManager……
    【随笔】Apache降权和禁用PHP危险函数
  • 原文地址:https://www.cnblogs.com/shmily-code/p/7252766.html
Copyright © 2011-2022 走看看