前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端开发博客微信群第三周面试题汇总

前端开发博客微信群第三周面试题汇总

作者头像
前端开发博客
发布2020-11-04 15:14:13
4450
发布2020-11-04 15:14:13
举报
文章被收录于专栏:前端开发博客

一周的面试题有点多,希望你能够转发收藏起来,方便自己后面有时间可以更好的回顾备忘,也当做是对我们的一点支持,如果你有更好的点子,欢迎加入前端开发微信群,这里有很多活跃的大神每天都在分享,群主也会每天分享最优秀的文章给大家。

面试题从这里开始~

1.请描述第2行代码的执行顺序

代码语言:javascript
复制
var obj = {a:1}
obj.b = obj = {a:2}
代码语言:javascript
复制
// 假设:上面第2行代码从右到左赋值
var obj = {a:1}
// 创建cobj指向obj
var cobj = obj
obj.b = obj = {a:2}
console.log(obj.b) // undefined
console.log(cobj.b) // {a: 2}

obj.b的值是undefined,cobj的属性b并未赋值过,但是cobj.b的值是{a: 2}。 cobj指向obj({a: 1}),只有obj.b = {a: 2},这一步执行了obj.b才有值! 故第2行代码执行顺序是从右到左赋值。可分解为:

代码语言:javascript
复制
// obj指向新对象{a: 2}
obj = {a: 2}
// obj({a: 1})的b属性指向新对象{a: 2}
obj.b = {a: 2}
代码语言:javascript
复制
obj.b = obj = {a: 2}
         |       |
       {a: 1}  {a: 2}

2.有 1 到 10000 共 10000 个数,如果我从中随机拿走一个数,你如何知道我拿走了哪个?

方式一:相加 1 ~ 10000个数相加然后减去随机拿走后的1 ~ 9999个数即可得出拿走的那个数。 方式二:相乘 1 ~ 10000个数相乘除以随机拿走后的1 ~ 9999个数即可得出拿走的那个数。 方式三:位运算符

代码语言:javascript
复制
(1^2^3^...^10000)^(n1^n2^...nm)
        |               |
      10000个数        9999个数

3.请写出隐藏一个html元素的各种方式?

代码语言:javascript
复制
<!-- 1.表单元素type=hidden
未脱离文档流,无法触发绑定事件
-->
<input type='hidden' />
<!-- 2.display:none; 或者 html的hidden属性
脱离文档流,无法触发绑定事件
-->
<div style='display:none;'></div>
<div hidden></div>
<!-- 3.visibility: hidden;
未脱离文档流,无法触发绑定事件
 -->
<div style='visibility:hidden;'></div>
<!-- 4.透明度opacity:0;
未脱离文档流,可以触发绑定事件
-->
<div style='opacity:0;'></div>
<!-- 5.绝对定位position:absolute;
未脱离文档流,可以触发绑定事件
-->
<div style='position:absolute;left:-9999px'></div>

4.请写出一个获取数组最大值的函数?

代码语言:javascript
复制
var arr = [22,18,2,10,9,3]
arr.reduce((prev, next) => {
    return Math.max(prev, next)
})
Math.max.apply(null, arr)
Math.max(...arr)
Reflect.apply(Math.max, Math, arr)

5.你知道链接target属性值的区别吗?请写出。

  • _self(默认):加载响应到当前页面
  • _blank:加载响应到新窗口
  • _parent:加载响应到父上下文
  • _top:加载响应到顶层浏览器上下文
  • name:加载响应到指定名称的框架上下文 其中name的是frame标签或者iframe标签的name属性。 html5已经不支持frame标签和frameset标签,若需使用框架建议使用iframe标签。

6.CSS有几种引入方式?link和@import有什么区别?

引入方式

  • 行内样式
代码语言:javascript
复制
// index.html
<div style='width:100px;height:100px;border:1px solid;'></div>
  • 嵌入样式
代码语言:javascript
复制
// index.html
<style>
*{
    margin:0;
    padding:0;
}
</style>
  • 链接样式
代码语言:javascript
复制
// index.html
<link rel="stylesheet" type="text/css" href="reset.css" />
  • 导入样式
代码语言:javascript
复制
// index.css
@import url(common.css);
代码语言:javascript
复制
// index.html
<style>
@import url(index.css);
</style>

link和@import的区别

  • link是html引入css方式,@import是css引入方式
  • 浏览器会先加载页面时同步加载link引入的css文件;页面加载完成后,再加载@import引入的css
  • 浏览器对link的兼容性更高
  • 优先级:link > @import

7.请写出一个秒转时分秒的函数。hh:mm:ss格式。

代码语言:javascript
复制
function getTime (num) {
    const hours = Math.floor(num / 3600)
    const minutes = Math.floor(num % 60 / 60)
    const seconds = Math.floor(num % 60)
    return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`
}
function getTime(seconds) {
  return [seconds / 3600, seconds % 60 / 60, seconds % 60].map(v => {
    return `${Math.floor(v).toString().padStart(2, '0')}`
  }).join(':')
}

8.已知年月,求该月共多少天?

代码语言:javascript
复制
function getDays (year, month) {
    return new Date(year, month + 1, 0).getDate()
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端开发博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.请描述第2行代码的执行顺序
  • 2.有 1 到 10000 共 10000 个数,如果我从中随机拿走一个数,你如何知道我拿走了哪个?
  • 3.请写出隐藏一个html元素的各种方式?
  • 4.请写出一个获取数组最大值的函数?
  • 5.你知道链接target属性值的区别吗?请写出。
  • 6.CSS有几种引入方式?link和@import有什么区别?
    • 引入方式
      • link和@import的区别
      • 7.请写出一个秒转时分秒的函数。hh:mm:ss格式。
      • 8.已知年月,求该月共多少天?
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档