海康威视财务面试题及答案.docx

上传人:b****9 文档编号:25419983 上传时间:2023-06-08 格式:DOCX 页数:8 大小:18.80KB
下载 相关 举报
海康威视财务面试题及答案.docx_第1页
第1页 / 共8页
海康威视财务面试题及答案.docx_第2页
第2页 / 共8页
海康威视财务面试题及答案.docx_第3页
第3页 / 共8页
海康威视财务面试题及答案.docx_第4页
第4页 / 共8页
海康威视财务面试题及答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

海康威视财务面试题及答案.docx

《海康威视财务面试题及答案.docx》由会员分享,可在线阅读,更多相关《海康威视财务面试题及答案.docx(8页珍藏版)》请在冰豆网上搜索。

海康威视财务面试题及答案.docx

海康威视财务面试题及答案

海康威视财务面试题及答案

1.闭包是什么?

有什么优点和缺点?

2.css中怎么使盒子上下居中(面试官说水平居中太简单了orz...)?

3.js中本地存储有哪些?

有什么不同?

4.cookie中的session了解吗?

5.跨域了解吗?

6.this的指向问题?

7.vue使用的UI框架?

8.npm中的工具了解过吗?

(yarn)

9.Node.js了解吗?

  

详细讲一下项目?

后端调用?

1.闭包是什么?

有什么优点和缺点?

  解答:

闭包是指有权访问另一个函数作用域中的变量的函数。

  优点:

①能够读取函数内部的变量;②让这些变量一直存在于内存中,不会在调用结束后被垃圾回收机制回收;

  缺点:

由于闭包会使用函数中的变量存在在内存中,内存消耗很大,所以不能滥用闭包;解决的办法是退出函数之前,将不使用的局部变量删除;

2. css中怎么使盒子上下居中(面试官说水平居中太简单了)?

解答:

方法一:

  设置垂直居中的时候要注意,先给祖先元素`html`和`body`的高度设置为100%(默认是0);并且清除默认样式(`margin`和`padding`都设置为0,否则浏览器就会出现滚动条),然后给子盒子相对定位和位移`position:

relative;top:

50%;`,然后减去本身宽度的一半即可(`margin-top:

负自身高度的一半`//`transform:

translateY(-50%)`向上偏移自身高度的一半;

  注意:

top、bottom、left、right的百分比值都是相对于包含块的高度、宽度的;

方法二:

   弹性盒子。

给父元素设置`display:

flex;align-items:

center;`设置body里的元素垂直居中;(`justify-content:

center;`定义body里的元素水平居中)

3. js中本地存储有哪些?

有什么不同?

`cookie`、`localStorage`、`sessionStorage`;

  相同点:

都保存在浏览器端;

  不同点:

  ①传递方式不同

  `cookie`数据始终在同源的http请求中携带(即使不需要),即`cookie`在浏览器和服务器间来回传递。

  `sessionStorage`和`localStorage`不会自动把数据发给服务器,仅在本地保存。

  ②数据大小不同

  (`cookie`数据还有路径(path)的概念,可以限制cookie只属于某个路径下。

  存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带`cookie`,所以cookie只适合保存很小的数据,如会话标识。

  `sessionStorage`和`localStorage`虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

  ③数据有效期不同

  `sessionStorage`:

仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;

  `localStorage`:

始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;

  `cookie`只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

  ④作用域不同

  `sessionStorage`不在不同的浏览器窗口中共享,即使是同一个页面;

  `localStorage`在所有同源窗口中都是共享的;

  `cookie`也是在所有同源窗口中都是共享的。

4. cookie中的session了解吗?

 `cookie`和`sessiom`是两种保持会话状态的方法。

  cookie就是指客户端在向服务端发起请求的时候,服务端会在进行response的时候给当前客户端的一小段文本信息,并保存在当前的客户端的浏览器中,这一小段cookie文本信息也就是这个客户端去访问服务端的通行证,有了这个通行证,以后当这个客户端再去访问服务端的时候,服务端便知道是谁拿着通行证去进行访问了。

  session和cookie的功能类似,也是一种保持会话状态的方式,在用户使用浏览器发起会话时,服务器会为每一个用户浏览器提供一个单独的session对象来保存用户的数据,并将它保存在服务端,而当用户访问其他web资源的时候,则可以从保存用户数据的session对象中把用户数据抽取出来并进行访问。

  区别:

  1.cookie的用户数据是保存在用户浏览器的cookie中的;

  session的用户数据是保存在服务器为用户浏览器单独创建的session对象中的。

  2.数据的读取和调用,cookie可以采用request.getCookies这种方法;

   session则可以用request.Session的方法。

  3.安全性,cookie是存储在用户浏览器中的;

   而session是存储在服务器上的,所以session比cookoe要相对安全;

5. 跨域了解吗?

跨域,指的是浏览器不能执行其他网站的脚本。

浏览器执行`javascript`脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。

   解决办法:

   ①JSONP:

注意JSONP只支持GET请求,不支持POST请求。

   原理:

ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。

   ②代理:

写后端接口,在后端调用页面拿到返回值返回给html文件。

相当于绕过了浏览器,就不会存在跨域问题。

   ③PHP端修改header

   header('Access-Control-Allow-Origin:

*');//允许所有来源访问

   header('Access-Control-Allow-Method:

POST,GET');//允许访问的方式

6. this的指向问题?

this的最终指向的是那个调用它的对象。

  改变this指向的方法:

  1.使用箭头函数;

  2.在函数内部使用`_this=this;`

  3.使用apply、call、bind;

  4.new实例化一个对象;

7. vue使用的UI框架?

 animate.css是一款前端动画库,相似的有velocity-animate;

使用步骤:

  1.首先`npminstallanimate.css--save`;

  2.然后在vue文件的script中引入`importanimatefrom'animate.css'`;

  3.最后绑定元素使用,如下:

  

  methods:

{

    fade:

function(){

      $('#f').addClass('animatedbounceOutLeft')     }   }

部分api常见:

fade:

{title:

'淡入淡出',     fadeIn:

'淡入',             fadeOut:

'淡出'},

bounce:

{title:

'弹跳类',     bounceIn:

'弹跳进入',        bounceOut:

'弹跳退出',},

zoom:

{title:

'缩放类',      zoomIn:

'放大进入',         zoomOut:

'缩小退出',},

rotate:

{title:

'旋转类',       rotateIn:

'顺时针旋转进入',   rotateOut:

'顺时针旋转退出',},

 flip:

{title:

'翻转类',         flipInX:

'水平翻转进入',      flipInY:

'垂直翻转进入',

    flipOutX:

'水平翻转退出',                       flipOutY:

'垂直翻转退出'},

strong:

{title:

'强调类',      bounce:

'弹跳',            flash:

'闪烁',

      pulse:

'脉冲',         rubberBand:

'橡皮筋',        shake:

'左右弱晃动',

      swing:

'上下摆动',    tada:

'缩放摆动',             wobble:

'左右强晃动',

      jello:

'拉伸抖动'}

8. npm中的工具了解过吗?

(warn)

npm就是JavaScript的包管理工具。

npm主要用来下载,安装,管理第三方模块。

  创建一个包描述文件:

`npminit[-y]`

  查看包的信息`npminfo`

  查看包的版本信息`npminfoversions`

  安装指定的包:

`npminstall`

  默认会安装在当前目录下的node_modules目录下,如果node_modules不存在,则会自动创建。

  本地安装包,如果包里有可执行文件,则npm会把可执行文件安装到node_modules/.bin目录下。

  安装指定版本的包:

`npminstall@`

  安装包并记录依赖,会在package.json中dependencies属性记录依赖`npminstall--save`

  卸载包:

`npmuninstall`

  更新包:

`npmupdate`

  全局安装包,把包安装在全局目录,供所有项目使用:

`npminstall-g`

  全局安装包,如果包里有可执行文件,则npm会把可执行文件安装到node_modules上一级目录中。

  查看全局目录:

`npmroot-g`

  修改全局目录的路径:

`npmconfigsetprefix``"新路径"`

默认情况下全局安装的包不能直接在项目中加载,如果要直接加载,需要在系统环境变量中添加一个名为NODE_PATH的变量,值为全局安装目录下node_modules位置。

  查看npm配置`npmconfiglist`

9. Node.js了解吗?

根据官方文档可以知道,node就是一个给予谷歌v8引擎的一个javascript的运行时,可以理解为运行js的一个虚拟机。

他使用的是一个事件驱动,非阻塞I/O模型,他是将js的运行环境搬到了服务器端,和客户端没有一点关系。

是一个纯服务端的东西,node只是为js提供了一个平台。

    node里面其实还分了两块,一是封装了v8引擎,目的是为了执行es(如定义变量,定义函数等),另外一个提供了大量的工具库,是帮助node实现各种功能的,提供了一些以前js的环境办不到的事情,比如文件操作,网络操作,操作系统的操作。

  既然node是一个平台(所谓的平台就是用来运行特定语言的),也就意味着node是用来运行语言的,那么java也是语言,node能运行java吗?

据nodejs创始人RyanDahl回忆,他最初是选择了Ruby这门语言,但是Ruby这门语言的虚拟机效率不怎么样最终放弃了,按照这种思路,貌似node将java的虚拟机集成进来应该可以运行java,但node作者最终选择了javascript。

    这样js就实现了在服务端运行的可能,js运行在node平台上(分为v8部分,用来执行es,和大量的工具库组件(API)称之为libuv,提供了以前js的环境办不到的事,如文件操作,网络操作等等)。

  用途:

  

(1)node可以接受客户端用户的所有请求,并且能够快速的给出响应,因此node可以用来做网站。

  

(2)node可以作为一个中间层来来分发调用数据接口,比如有一个网站数据是有java提供的,我们可以让node作为一个中间层,来接受用户的请求,然后通过node来调用java数据接口,获取到数据后直接在node层面做html的封装,然后将渲染好的页面直接给用户。

为什么要这样做,直接请求java接口不行吗,这是因为node被称之为高性能的web服务器,在并发和抗压方面都比传统的平台要好很多,因此这样一包装可以极大的减轻服务器的开发。

    通过上面的两点,可以总结出,node在web中要么从前端页面到后端服务全包了,一个是只做其中的一点。

    一言以蔽之,node就是一个javascript的运行环境(平台),他不是一门语言,也不是javascript的框架。

可以用来开发服务端应用程序,web系统。

其特点是体积小,快速,高性能。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1