热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端传给后端字符串为啥会多一个双引号_西安腾讯云前端面试经

本人已入职,需要的内推的可以私聊我呦!一面:1,平时工作中有遇到过跨域问题吗?怎么解决的?答:遇到过ÿ

本人已入职,需要的内推的可以私聊我呦!

一面:

1,平时工作中有遇到过跨域问题吗?怎么解决的?

答:遇到过,一般情况都是ajax请求的跨域问题,常用的解决方式有两种,一种是jsonp,就是通过创建script标签请求一个http接口,但是这种方式必须是get请求且后端必须与前端商量好一个调用方式,第二种是w3c推荐的方式:cors,这种一般是后台通过设置access-control-allow-origion,access-control-allow-headers,access-control-allow-method,access-control-allow-credentials来控制。

面试官进一步体问:能详细说一下jsonp的原理吗?

答:jsonp在前端具体来说就是创建一个script,设置类型为Javascript,拼接一个callback=callback的参数,添加一个window.callback的全局回调。服务端收到请求后,手动获取callback的值并将要响应的数据拼接在callback的调用中:res.send(callback+'('+ data +')')

面试官进一步提问,能具体说一下客户端到底怎么触发响应,执行回调的吗?

答:因为刚我们注册了一个全局的回调,当script请求完毕之后会执行这个callback。说完以后感觉面试官依旧不是很满意,他又提示我:script标签加载完之后是自动执行脚本的吗?是!

面试官:好我们接着说说cors,我想所有网站都能跨域请求怎么解决?

答:后端设置access-control-allow-origion:*

面试官:ok,那我要是觉得这样不安全,同时想要解决跨域,应该怎么解决?

答:设置access-control-allow-origion为自己网站具体的协议+域名+端口号

面试官,嗯,一般情况下我这样设置后,前端就无法接受和存储COOKIEs了,你一般怎么解决?

答:前端xmlhttprequest设置withCredentials:true,服务端同时设置access-control-allow-credentials

2,用过闭包吗,你一般用在哪里!

答,用过,以前主要是用在for循环中,当for循环中出现异步操作时,最终结果将会是for循环的最后一个值,这时我们需要用闭包保存住for循环每一步的值。

面试官:额,我还是头一次听说把闭包用在for循环里,但是似乎也可以,那你知道闭包具体的作用吗?

答:我个人理解,闭包就是缓存变量用的!

面试官:闭包为什么能缓存变量,知道他的原理吗?

答:闭包一般都是通过函数内返回另一个函数,并且返回的函数依赖了父函数的某个变量,当我们在外部调用父函数时,此时js将会获得一个内部的函数的对象引用,但因为这个内部函数依赖了外部函数的某个变量,所以外部函数无法被js引擎销毁,此时变量被缓存,行成闭包。

3,了解前端安全吗?比如xss这种

答:了解的,工作中经常遇到。

面试官,大致介绍一下xss攻击,如何利用xss去攻击一个网站,换句话说,攻击的步骤是哪些?

答:xss,也就是跨域脚本攻击,常见于前端的input框还有console控制栏,我们将我们写好的脚本通过input标签注入,没有拦截过xss页面将会直接执行这些脚本。

面试官,你说的这些其实不是很危险,你一直在你本地操作,怎么才能真正的攻击到别人?

答:额,我理解的xss攻击一般不会攻击服务端。。。

面试官:其实这个脚本在你的input框里是不会装执行的,真正的危险是,当你的脚本被上传到服务端(存在数据库或者缓存中,常见于评论等功能),当其他人请求此资源时,服务端就会将此脚本下发至客户端,客服端收到请求后,就会自动执行此脚本。

4,你了解csrf攻击吗?如何攻击别人?攻击的原理是什么!

答:csrf攻击,也就是跨站请求伪造,当我在一个以COOKIEs为授权方式的网站登陆以后,服务端就会下发用户标识至客户端,此时客户端将会把这些信息存储在COOKIEs中,此时我们打开另一个有攻击性的网站,他将会返回一个带有攻击性的脚本,去请求刚登陆的网站,原网站接到请求后以为是正常操作,默认通过,形成了csrf攻击。

面试官:你说的对,但是我觉得这没有意义啊,你这个csrf脚本,就是为了获取别人的账号信息,进行支付啊发布啊,你刚说的都是在自己本地玩,有考虑过怎么攻击别人吗?

答:不好意思,不太懂。

面试官:其实这很常见,通常做法是,写一个自己的网站,网站里嵌套一个别人的网站,完了以后我把我的域名做的很像,发给别人,别人误以为这是官方网站,进行登陆等一系列操作,我再在页面中加上我自己的一些脚本就可以通过他的COOKIE执行很多操作!

5,用过es6吗,知道哪些新功能?

答:promise。。。。巴拉巴拉

6,看你简历用过vue,用的怎么样呀,能说下vue的双向绑定原理,或者说是mvvm的双向绑定原理!

参考vue响应式原理!

7,了解http状态码吗?比如304状态码是什么意思?

答:304一般情况下用于http缓存,服务器端告诉客户端请求的资源可以继续使用缓存。

面试官:302呢,302状态码怎么使用?

答:没使用过。

面试官:302也是一个和资源有关的状态码,代表当前url请求的资源已经被暂时移动

8,了解ajax吗,能说说ajax是怎么实现的?

答:了解的,发起一个ajax请求必须创建一个xmlHttpRequest对象,通过设置请求方式、请求参数、url等发出请求,当请求响应时会触发一个onReadyStateChange事件,这时我们监听此事件的readyState属性为4且ajax的status为200时,可以通过ajax.responseText取到后端返回的数据。

面试官:能说说onreadystatechange的几个状态吗?

答:巴拉巴拉。。。

面试官:我们取数据使用4这个状态码吗?是!

9,了解http和https吗,说一下他们的区别!

https采用ssl/tls公钥加密技术,占用端口号443,巴拉巴拉。。。

6月16日二面!

1,说一下工作中觉得有亮点的项目。

答:说了一个做了首屏加载优化,webpack打包优化,精简包体积的项目,面试官觉得只做这些算不上亮点,又问能再说一两个不,又随便说了两个技术难度比较大的项目。但依旧觉得面试官不是很满意!

2,你知道阶乘在原生js怎么实现吗?

使用for循环,逆序遍历n,最终实现,4*3*2*1

3,你知道number在js中会丢失精度吗?你一般怎么处理,数字相乘,数字相除?

是的,常用做法是将数字转为字符串处理,或将数字转为其他进制,或者先将其缩小10的倍数,在转为字符串时再乘回来。

4,了解中序查找吗?

答:不了解。

5,了解二分查找吗?

答,不了解

6,了解快速排序吗?

折中随机找到一个数字,大的往前移动,小的往后移动,循环一定次数后结束。

7,了解算法中的什么什么吗?

由于名词没听过,没回答上,面试完深圳连名字都忘了!

8,csrf介绍一下。???又问这个?

答:巴拉巴拉

面试官:嗯,你说的这个只是原理,但是一般情况下,别人调用我的接口都是会跨站的,COOKIE是无法带上的,想个办法处理一下?

我:额,不知道

9,进程和线程了解吗,解释一下?

说了下大概的

10,了解linux吗,介绍一下他的原理。

不知道具体什么意思

11,我看你用过很多node.js框架,能分别介绍下他们的原理吗?

答,说了下nest.js的原理

面试官:能说下这个框架在上线后,占用服务器多少资源,多少线程,多少进程,分别是哪些服务占用的?

答:不了解

12,大致描述一下服务端渲染。

答:随便答了一点

13,说一下从输入url到页面渲染发生了什么?并针对每个步骤采取一些优化措施!

答:这个很好说

14,页面是如何加载的?

css规则,dom树,渲染树

15,http2新增了什么特性?

多路复用,header压缩

16,了解promise吗,介绍下promise原理

答:这个很简单,参考阮一峰es6

17,eventloop了解吗?

答,同上

18,了解async await

答:同上

19,为什么想回西安?

20,为什么想来腾讯

21,你觉得你的优势在哪里

22,vue中有个子组件,是一个表单,数据从父组件而来,想实现数据回显并可修改,但不能修改父组件传值,最终数据传回父组件提交!

答:首先通过props将数据传给子组件,子组件在props对象中定义,同时在data中新增变量,如果传过来的对象是嵌套对象,且对象中无fuction,则用json.parse(json.stringify(data)深复制一份给data中的变量,若传过来的对象无嵌套对象,则可以直接使用...运算符和object.assign浅拷贝一份,最终模板中用v-modol=http://data.xxx来实现回显及修改。修改完成后,使用this.$emit触发父组件事件,将修改后的值作为参数带回,父组件进行数据上传等操作!

上述操作仅能用于父组件只传一次值的情况,若父组件使用的是动态传值,则上述方法无效,因为data中的参数赋值只会在初始化时将其复制一次,后续变化不会影响data,故此时只能使用watch监听props变化,如需要监听传输对象属性变化,需同时开始deep。同时开启immedate,保证首次赋值也触发监听,最后在watch的handler中进行data的赋值操作,若当前用户已在修改表单,则可能需要开启数据智能合并!可用object.assign和...运算符实现!

23,了解tcp和udp吗,说说他们的原理及区别?

答:tcp是面向连接的,我们前端主要使用这个协议。。。巴拉巴拉说了一些简单的。

中间还问了很多网络、算法、linux的知识,很多题目忘了,抛开前端知识,总体回答上一半左右吧。历时一个多小时!

面试官总结:对计算机网络、数据结构不求甚解,对js原理和vue原理理解较深(滔滔不绝,每次都喊可以了)。估计凉了

三面:

面试官自我介绍,说他是后台开发工程师,主要对我进行一些复试,过程比较简单,问了一些http原理,http状态码,计算机缓存,服务器缓存,mysql,node.js原理,redis原理,服务端渲染,大头时间主要花在亮点项目的介绍上。

9.17日补充,后来才知晓,三面其实是总监面,后台出身,问的都是架构层面的东西!

四面:

4面是个hr面,问一些工作经历,一些职场经历等等,比较简单。

个人总结:难度主要出在二面,二面面试官一般是你将来的直系领导,我在四面时问了hr,hr说以后得工作任务都是二面这位深圳的前端主管安排,所以他问的问题一般非常深入,一知半解的技术最好不要说出来,比如我就被问到了node.js很难的问题,只能解释说自己没接触过这方面知识。祝大家好运,溜了!



推荐阅读
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • javascript二叉树基本功能实现
    都是常用的功能。删除是最复杂的。。test ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
mobiledu2502931467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有