龙空技术网

前端面试被问到项目中的难点有哪些?

传智教育官方账号 306

前言:

眼前我们对“java面试项目中遇到的难点”大致比较关心,同学们都需要学习一些“java面试项目中遇到的难点”的相关文章。那么小编也在网上网罗了一些对于“java面试项目中遇到的难点””的相关知识,希望看官们能喜欢,看官们快快来学习一下吧!

前端面试中,一定都会被问过项目中的难点,但是很多人都答不出来。为了让大家接下来的面试中有充足的准备,给大家整理了一些有难度又高频的面试题,希望你们求职顺利。

我们先来汇总JavaScript的笔试题:

(1)介绍一下JS的基本数据类型:

Undefined、Null、Boolean、Number、String

(2)介绍一下JS有哪些内置对象:

Object 是 JavaScript 中所有对象的父对象数据封装类对象:Object、Array、Boolean、Number、String其他对象:Function、Argument、Math、Date、RegExp、Error

(3)列举JS的基本代码规范:

(1)不要在同一行声明多个变量(2)如果你不知道数组的长度,使用 push(3)请使用 ===/!== 来比较 true/false 或者数值(4)对字符串使用单引号 ''(因为大多时候我们的字符串。特别html会出现")(5)使用对象字面量替代 new Array 这种形式(6)绝对不要在一个非函数块里声明一个函数,把那个函数赋给一个变量。浏览器允许你这么做,但是它们解析不同(7)不要使用全局函数(8)总是使用 var 来声明变量,如果不这么做将导致产生全局变量,我们要避免污染全局命名空间(9)Switch 语句必须带有 default 分支(10)使用 /***/ 进行多行注释,包括描述,指定类型以及参数值和返回值(11)函数不应该有时候有返回值,有时候没有返回值(12)语句结束一定要加分号(13)for 循环必须使用大括号(14)if 语句必须使用大括号(15)for-in 循环中的变量应该使用 var 关键字明确限定作用域,从而避免作用域污染(16)避免单个字符名,让你的变量名有描述意义(17)当命名对象、函数和实例时使用驼峰命名规则(18)给对象原型分配方法,而不是用一个新的对象覆盖原型,覆盖原型会使继承出现问题(19)当给事件附加数据时,传入一个哈希而不是原始值,这可以让后面的贡献者加入更多数据到事件数据里,而不用找出并更新那个事件的事件处理器

(4)介绍一下JS原型,原型链,他们有何特点?

每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链的概念。关系:instance.constructor.prototype = instance.__proto__特点:JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本,当我们修改原型时,与之相关的对象也会继承这一改变。当我们需要一个属性时,JavaScript引擎会先看当前对象中是否有这个属性,如果没有的话,就会查找它的prototype对象是否有这个属性,如此递推下去,一致检索到Object内建对象。function Func(){}Func.prototype.name = "Xiaosong";Func.prototype.getInfo = function() {   return this.name;}var person = new Func();console.log(person.getInfo());//"Xiaosong"console.log(Func.prototype);//Func { name = "Xiaosong", getInfo = function() }
流式布局如何实现,响应式布局如何实现?

流式布局:也叫fluid,

上面一行的空间不够容纳新的 TextView 时候才开辟下一行的空间。场景:主要用于关键词搜索或者热门标签等场景;他主要是按照页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变,使用%百分比定义宽度,高度大都是用 px 来固定,可以根据可视区域和父元素的实时尺寸来调整,尽可能适应各种分辨率。

响应式布局:主要是实现不同屏幕分辨率的终端上浏览网页的不同展示方式, 通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验;首先设置meta标签,通过媒体查询来设置样式Media Queries,然后再设置多种视图宽度。

什么是 “use strict”,好处和坏处是什么?

ECMAscript 5 添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得 Javascript 在更严格的条件下运行。

好处:消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为;消除代码运行的一些不安全之处,保证代码运行的安全;提高编译器效率,增加运行速度;为未来新版本的 Javascript 做好铺垫。 注:经过测试 IE6,7,8,9 均不支持严格模式。

缺点:现在网站的 JS 都会进行压缩,一些文件用了严格模式,而另一些没有。这时这些本来是严格模式的文件,被 merge 后,这个串就到了文件的中间,不仅没有指示严格模式,反而在压缩后浪费了字节。

介绍一下websocket

websocket 是一种网络通信协议,是HTML5 开始提供的一种在单个 TCP 连接上进行全双工通信的协议,这个对比着 http 协议来说,http 协议是一种无状态的、无连接的、单向的应用层协议,通信请求只能由客户端发起,服务端对请求做出应答处理。http 协议无法实现服务器主动向客户端发起消息,Websocket 连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的连接将数据推送到另一端。WebSocket 只需要建立一次连接,就可以一直保持连接状态。

单页面应用有什么SEO方案?

原因:较之于传统页面,单页应用需要先下载框架(数据 / 模板),然后才能开始加载数据、

方案:服务器端渲染首屏(SSR 基于 vue 的服务端下载);让服务端把首屏的数据渲染在页面上;进行基本的 css 模板 js 的编译合并;减少请求次数,使用 gulp 工具,把 css 打包成一个文件, js 打包成一个文件, 模板打包成一个 js 文件($templateCache) 可以和 js 文件打包成一起(促使模板 JS 文件和 JS 文件一次性请求);代码分块,如果首屏不需要的块,就不用加载了;路由组件懒加载。当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样更加高效;如果有大量图片使用懒加载。

以上就是前端技术中高频出现的难点问题,如果还有疑问的小伙伴,可以到黑马程序员看就业相关内容。

标签: #java面试项目中遇到的难点