国外新式前端面试,题目把我看麻了

大家好,我是恺哥。今天给大家分享一个有趣的前端面试问题。

前段时间笔者看到有个老外在招聘的时候喜欢问一个问题:请解释 Twitter 的前十行源码:

0445a0df77222d5892ceaa4a173850aa.png

其实这十来行源码如果真的要我来解释作用的话,那真的是要麻了。其中确实有好几个不清楚的的地方,所以笔者去具体查了这些代码的作用,今天分享一下。

<!DOCTYPE html>

这个应该是笔者刚学前端的时候学的知识了,这里就直接引用 MDN 的内容了:

在 HTML 中,文档类型 doctype 的声明是必要的。在所有文档的头部,你都将会看到"" 的身影。这个声明的目的是防止浏览器在渲染文档时,切换到我们称为“怪异模式(兼容模式)”的渲染模式。“" 确保浏览器按照最佳的相关规范进行渲染,而不是使用一个不符合规范的渲染模式。

<html dir="ltr" lang="zh">

首先 html 标签是根元素,所有别的元素都在里面。

标签上有两个属性:

  1. 1. dir:文档的文本方向,默认是 ltr,表示从左到右。对于大部分语言来说都是这个文本方向,但比如阿拉伯文的话就是从右到左了,得使用 rtl

  2. 2. lang:文档的语言,zh 表示中文。

<meta charset="utf-8" />

meta 标签是文档级元数据元素,charset 的作用是指定文档的字符集。

<meta name="viewport" ... />

这行代码应该大部分读者都了解它的意思。作用是告诉浏览器当前页面的窗口大小以及窗口的缩放比例。

  • • width:窗口的宽度,默认是 device-width,表示设备的宽度。

  • • initial-scale:缩放比例,默认是 1,表示不缩放。

  • • maximum-scale:最大缩放比例,默认是 1,表示不缩放。

  • • user-scalable:是否允许用户缩放,默认是 yes,表示允许。代码中的 0 表示禁止用户缩放。

  • • viewport-fit:多用于适配 iPhone 刘海屏。

<meta property="og:site_name" content="Twitter" />

这是 Open Graph(OG)元标签,这个标签作用可能挺多读者不清楚作用。

首先这其实算是一个协议,由 Facebook 搞得,有兴趣的可以阅读下官方网站[1],里面介绍了不少别的字段。

我们可以通过这个协议将网站内容在传播的时候生成一个预览卡片,帮助别的用户更迅速地获取信息,另外还有 SEO 的帮助。

ca64d5d8bc7e7582fb9aeaf108e7166d.png

<meta name="apple-mobile-web-app-title" content="Twitter" />

这行与下一行都是作用在 iOS 上的。我们在 iOS 上能把某个网页添加到主屏幕上。

这行代码的作用是显示在屏幕上的书签标题,下一行代码作用是状态栏颜色。

<meta name="theme-color" content="#ffffff" />

浏览器将根据 content 中的内容设定颜色。

比如说我们设置为蓝色时,此时浏览器的颜色表现如下:

8ef2b9a41e3b54f24aed9a3dd688a875.png

<meta http-equiv="origin-trial" content="..." />

这应该又是一个鲜为人知的功能,主要是帮助开发者使用实验中的功能。

这些实验中的功能都是做好但没开放出来的,如果我们想使用这个功能的话就需要用到这个标签了。

有兴趣的读者可以在这个网站[2]上查看当前可用的实验功能,然后选择自己喜欢的功能并按照提示生成 token,然后再将这个标签填入 HTML 文件中即可启用选中的功能了。

6d9f98e90399b45aa34ab35104d5bc93.png

html{-ms-text-size-adjust:1 ...}

这行就是纯 CSS 相关的内容了。

  • • text-size-adjust:根据设备尺寸自动调整文字大小,这是为 1 就是不调整,否则对于小屏幕来说字号可能会变得很少导致可读性降低

  • • tap-highlight-color:点击时的高亮颜色,这个应该挺容易猜出意思了

以上就是对于这十行代码的解析。当然部分内容没有详细着去讲,如果各位读者对于某行代码有想深入了解的,可以自行搜索资料或者大家在评论区交流。

引用链接

[1] 官方网站: https://ogp.me/
[2] 这个网站: https://developer.chrome.com/origintrials/#/trials/active

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值