广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >有哪些前端面试真题
  • 737
分享到

有哪些前端面试真题

2024-04-02 19:04:59 737人浏览 安东尼
摘要

这篇文章主要讲解了“有哪些前端面试真题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些前端面试真题”吧!1. 谈谈你对 dns-prefetch 的理解

这篇文章主要讲解了“有哪些前端面试真题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些前端面试真题”吧!

1. 谈谈你对 dns-prefetch 的理解

DNS 是什么-- Domain Name System,域名系统,作为域名和IP地址相互映射的一个分布式数据库

DNS Prefetching

浏览器根据自定义的规则,提前去解析后面可能用到的域名,来加速网站的访问速度。简单来讲就是提前解析域名,以免延迟。

使用方式

<link rel="dns-prefetch" href="//wq.test.com">

这个功能有个默认加载条件,所有的a标签的href都会自动去启用DNS Prefetching,也就是说,你网页的a标签href带的域名,是不需要在head里面加上link手动设置的。但a标签的默认启动在https不起作用。

这时要使用 meta里面Http-equiv来强制启动功能。

<meta http-equiv="x-dns-prefetch-control" content="on">

总结一下

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2.  DNS Prefetching是提前加载域名解析的,省去了解析时间。a标签的href是可以在chrome。firefox包括高版本的IE,但是在HTTPS下面不起作用,需要meta来强制开启功能

  3.  这是DNS的提前解析,并不是CSSjs之类的文件缓存,大家不要混淆了两个不同的概念。

  4.  如果直接做了js的重定向,或者在服务端做了重定向,没有在link里面手动设置,是不起作用的。

  5.  这个对于什么样的网站更有作用呢,类似taobao这种网站,你的网页引用了大量很多其他域名的资源,如果你的网站,基本所有的资源都在你本域名下,那么这个基本没有什么作用。因为DNS Chrome在访问你的网站就帮你缓存了。

拓展知识学习

2. get/post请求传参长度有什么特点

我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。这是一个错误的说法,实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度。为了明确这个概念,我们必须再次强调下面几点:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2.  HTTP 协议 未规定 GET 和POST的长度限制

  3.  GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度

  4.  不同的浏览器和WEB服务器,限制的最大长度不一样

  5.  要支持IE,则最大长度为2083byte,若只支持Chrome,则最大长度 8182byte

3. 前端需要注意哪些 SEO

  1.  合理的 title、description、keyWords:搜索对着三项的权重逐个减小,title 值强调重点即可,重要关键词出现不要超过 2 次,而且要靠前,不同页面 title 要有所不同;description 把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面 description 有所不同;keywords 列举出重要关键词即可

  2.  语义化的 html 代码,符合 W3C 规范:语义化代码让搜索引擎容易理解网页

  3.  重要内容 HTML 代码放在最前:搜索引擎抓取 HTML 顺序是从上到下,有的搜索引擎对抓取长度有限制,保证重要内容一定会被抓取

  4.  重要内容不要用 js 输出:爬虫不会执行 js 获取内容

  5.  少用 iframe(搜索引擎不会抓取 iframe 中的内容)

  6.  非装饰性图片必须加 alt

  7.  提高网站速度(网站速度是搜索引擎排序的一个重要指标)

4. 实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后 退时正确响应。给出你的技术实现方案?

第一步,通过使用 pushState + ajax 实现浏览器无刷新前进后退,当一次 ajax 调用成功后我们将一 条 state 记录加入到 history 对象中。

第二步,一条 state 记录包含了 url、title 和 content 属性,在 popstate 事件中可以 获取到这个 state 对象,我们可 以使用 content 来传递数据。第三步,我们通过对 window.onpopstate 事件监听来响应浏览器 的前进后退操作。

使用 pushState 来实现有两个问题,一个是打开首页时没有记录,我们可以使用 replaceState 来将首页的记录替换,另一个问 题是当一个页面刷新的时候,仍然会向服务器端请求数据,因此如果请求的 url 需要后端的配 合将其重定向到一个页面。

更多参考:http://blog.chenxu.me/post/detail?id=ed4f0732-897f-48e4-9d4f-821e82f17fad

5. 如何优化SPA应用的首屏加载速度慢的问题?

  •  将公用的JS库通过script标签外部引入,减小app.bundel的大小,让浏览器并行下载资源文件,提高下载速度;

  •  在配置 路由时,页面和组件使用懒加载的方式引入,进一步缩小 app.bundel 的体积,在调用某个组件时再加载对应的js文件;

  •  root中插入loading 或者 骨架屏 prerender-spa-plugin,提升用户体验;

  •  如果在webview中的页面,可以进行页面预加载

  •  独立打包异步组件公共 Bundle,以提高复用性&缓存命中率

  •  静态文件本地缓存,有两种方式分别为HTTP缓存,设置Cache-Control,Last-Modified,Etag等响应头和Service Worker离线缓存

  •  配合 PWA 使用

  •  SSR

  •  root中插入loading 或者 骨架屏 prerender-spa-plugin

  •  使用 Tree Shaking 减少业务代码体积 更多参考:https://GitHub.com/LuckyWinty/fe-weekly-questions/issues/69

6. Reflect 对象创建目的?

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2.  将 Object 对 象 的 一 些 明 显 属 于 语 言 内 部 的 方 法 ( 比 如 Object.defineProperty,放到 Reflect 对象上。

  3.  修改某些 Object 方法的返回结果,让其变得更合理。

  4.  让 Object 操作都变成函数行为。

  5.  Reflect 对象的方法与 Proxy 对象的方法一一对应,只要是 Proxy 对象 的方法,就能在 Reflect 对象上找到对应的方法。这就让 Proxy 对象可 以方便地调用对应的 Reflect 方法,完成默认行为,作为修改行为的基础。

也就是说,不管 Proxy 怎么修改默认行为,你总可以在 Reflect 上获取 默认行为。

7. 内部属性 [[Class]] 是什么?

所有 typeof 返回值为 "object" 的对象(如数组)都包含一个内部属性 [[Class]](我 们可以把它看作一个内部的分类,而非传统的面向对象意义上的类)。这个属性无法直接访问, 一般通过 Object.prototype.toString(..) 来查看。例如:

Object.prototype.toString.call( [1,2,3] );  // "[object Array]"  Object.prototype.toString.call( /regex-literal/i ); //"[object RegExp]"

多数情况下,对象的内部[[class]]属性和创建该对象的内建原生构造函数相对应,不过也不总是这样。2.基本类型值的[[class]]属性

虽然Null()和Undefined()这样的原生构造函数并不存在,但是内部[[class]]属性仍然是“Null”和“Undefined”。

console.log(Object.prototype.toString.call(null)); //[object Null]  console.log(Object.prototype.toString.call(undefined)); //[object Undefined]

其他基本类型值的情况有所不同:

console.log(Object.prototype.toString.call("abc")); //[object String]  console.log(Object.prototype.toString.call(42));  //[object Number]  console.log(Object.prototype.toString.call(true)); //[object Boolean]

基本类型值被各自的封装对象自动包装,所以他们的内部[[class]]属性分别为“String”,“Number”和“Boolean”。3.封装对象

由于基本类型值没有.length和.toString()这样的属性和方法,需要通过封装对象才能访问,此时javascript引擎会自动为基本类型值包装一个封装对象。

//封装对象包装  var b = 'abc';  cons  一般不直ole.log(b.length);  console.log(b.toUpperCase());  ```js接使用封装对象(即通过new操作创建基本类型值),优先考虑使用“abc”和“42”这样的基本类型值,而不是new String("abc") 和 new Number(42)。4.拆封  如果想要得到封装对象中的基本类型值,可以使用valueOf()函数。   ```js  //封装对象的拆封  var s = new String( "abc" );  var n = new Number( 42 );  var b = new Boolean( true );  console.log(s.valueOf());  console.log(n.valueOf());  console.log(b.valueOf());

8. 什么是堆?什么是栈?它们之间有什么区别和联系?

堆和栈的概念存在于数据结构中和操作系统内存中。在数据结构中,栈中数据的存取方式为 先进后出。而堆是一个优先队列,是按优先级来进行排序的,优先级可以按照大小来规定。完全 二叉树是堆的一种实现方式。在操作系统中,内存被分为栈区和堆区。栈区内存由编译器自动分 配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区内存一 般由程序员分配释放,若程序员不释放,程序结束时可能由垃圾回收机制回收。

详细资料可以参考:《什么是堆?什么是栈?他们之间有什么区别和联系?》

9. isNaN 和 Number.isNaN 函数的区别?

函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返 回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,这种方法对于 NaN 的判断更为准确。

10. 什么情况下会发生布尔值的隐式强制类型转换?

(1) if (..) 语句中的条件判断表达式。(2) for ( .. ; .. ; .. ) 语句中的条件判断表达式(第二个)。(3) while (..) 和 do..while(..) 循环中的条件判断表达式。(4) ? : 中的条件判断表达式。(5) 逻辑运算符 ||(逻辑或)和 &&(逻辑与)左边的操作数(作为条件判断表达式)。

11. undefined 与 undeclared 的区别?

已在作用域中声明但还没有赋值的变量,是 undefined 的。相反,还没有在作用域中声明 过的变量,是 undeclared 的。对于 undeclared 变量的引用,浏览器会报引用错误,如 ReferenceError: b is not defined 。但是我们可以使用 typeof 的安全防范机制来避免 报错,因为对于 undeclared(或者 not defined )变量,typeof 会返回 "undefined"。

12. 如何封装一个 javascript 的类型判断函数?

function getType(value) {     // 判断数据是 null 的情况     if (value === null) {         return value + "";     }    // 判断数据是引用类型的情况     if (typeof value === "object") {       let valueClass = Object.prototype.toString.call(value),       type = valueClass.split(" ")[1].split("");       type.pop();       return type.join("").toLowerCase();    } else {       // 判断数据是基本数据类型的情况和函数的情况       return typeof value    }  }

感谢各位的阅读,以上就是“有哪些前端面试真题”的内容了,经过本文的学习后,相信大家对有哪些前端面试真题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 有哪些前端面试真题

本文链接: https://www.lsjlt.com/news/84332.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 有哪些前端面试真题
    这篇文章主要讲解了“有哪些前端面试真题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些前端面试真题”吧!1. 谈谈你对 dns-prefetch 的理解...
    99+
    2022-10-19
  • Web前端面试题有哪些
    这篇文章给大家分享的是有关Web前端面试题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML、CSS相关1.网络中使用最多的图片格式有哪些JPEG,GIF,PNG,最流行的是jpeg格式,可以把文件压缩...
    99+
    2023-06-14
  • Web前端有哪些面试题
    这篇文章主要介绍“Web前端有哪些面试题”,在日常操作中,相信很多人在Web前端有哪些面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Web前端有哪些面试题”的疑惑有所帮...
    99+
    2022-10-19
  • 前端vue面试题有哪些
    小编给大家分享一下前端vue面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue面试题vue-router是怎么传递参数的2.v-if和v-for一起...
    99+
    2023-06-14
  • 前端jQuery面试题有哪些
    这篇文章主要介绍了前端jQuery面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、jquery的优点jQuery 是轻量级的框架,大小不到 30kb;它有强大的...
    99+
    2023-06-27
  • 前端的面试题都有哪些
    这篇文章给大家介绍前端的面试题都有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、标签属性中title和alt的区别答:title是设置鼠标移动到图片上时显示的内容,而alt是用...
    99+
    2022-10-19
  • web前端的面试题有哪些
    web前端的面试题有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。又到了一年中的招聘旺季的时...
    99+
    2022-10-19
  • 前端中Vue面试题有哪些
    本篇内容主要讲解“前端中Vue面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“前端中Vue面试题有哪些”吧!1. 谈谈你对MVVM开发模式的理解MVV...
    99+
    2022-10-19
  • jQuery的前端面试题有哪些
    今天小编给大家分享一下jQuery的前端面试题有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2022-10-19
  • web前端常见面试题有哪些
    本篇内容主要讲解“web前端常见面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端常见面试题有哪些”吧!  1、什么是盒子模型  在网页中,一...
    99+
    2022-10-19
  • web前端面试问答题有哪些
    这篇文章主要讲解了“web前端面试问答题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端面试问答题有哪些”吧!第一问:安全类型检测——typeof和instanceof 区别以...
    99+
    2023-07-04
  • 前端关于HTML的面试题有哪些
    这篇文章主要讲解了“前端关于HTML的面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“前端关于HTML的面试题有哪些”吧!1.什么是HTML?HT...
    99+
    2022-10-19
  • 基于Node.js的前端面试题有哪些
    这篇文章主要介绍基于Node.js的前端面试题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、Node基础概念1.1 Node是什么Node.js 是一个开源与跨平台的 Ja...
    99+
    2022-10-19
  • web前端实习生面试题有哪些
    这篇文章主要介绍“web前端实习生面试题有哪些”,在日常操作中,相信很多人在web前端实习生面试题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web前端实习生面试题有...
    99+
    2022-10-19
  • Javascript前端经典的面试题有哪些
    这篇文章将为大家详细讲解有关Javascript前端经典的面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、JavaScript 的 typeof 返回哪些数...
    99+
    2022-10-19
  • Web前端面试题及答案有哪些
    本篇内容主要讲解“Web前端面试题及答案有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前端面试题及答案有哪些”吧!js面试题1、js数据类型基本数据...
    99+
    2022-10-19
  • web前端技术有哪些Vue面试题
    这篇文章主要介绍“web前端技术有哪些Vue面试题”,在日常操作中,相信很多人在web前端技术有哪些Vue面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web前端技术有哪些Vue面试题”的疑惑有所帮助!...
    99+
    2023-06-02
  • 关于angular的前端面试题有哪些
    这篇文章主要介绍了关于angular的前端面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1,ng-if 跟 ng-show/hide 的区别有哪些?第一点区别是,...
    99+
    2023-06-14
  • web前端的经典面试题有哪些
    这篇文章主要讲解了“web前端的经典面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端的经典面试题有哪些”吧!  1、如何利用Webpack把代码上传服务器以及转码测试  ...
    99+
    2023-06-03
  • vue的前端基础面试题有哪些
    本篇内容主要讲解“vue的前端基础面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue的前端基础面试题有哪些”吧!vue 传值方式vue传值父  子 传值   使...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作