一周的面试题有点多,希望你能够转发收藏起来,方便自己后面有时间可以更好的回顾备忘,也当做是对我们的一点支持,如果你有更好的点子,欢迎加入前端开发微信群,这里有很多活跃的大神每天都在分享,群主也会每天分享最优秀的文章给大家。
面试题从这里开始~
var obj = {a:1}
obj.b = obj = {a:2}
// 假设:上面第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行代码执行顺序是从右到左赋值。可分解为:
// obj指向新对象{a: 2}
obj = {a: 2}
// obj({a: 1})的b属性指向新对象{a: 2}
obj.b = {a: 2}
obj.b = obj = {a: 2}
| |
{a: 1} {a: 2}
方式一:相加 1 ~ 10000个数相加然后减去随机拿走后的1 ~ 9999个数即可得出拿走的那个数。 方式二:相乘 1 ~ 10000个数相乘除以随机拿走后的1 ~ 9999个数即可得出拿走的那个数。 方式三:位运算符
(1^2^3^...^10000)^(n1^n2^...nm)
| |
10000个数 9999个数
<!-- 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>
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)
// index.html
<div style='width:100px;height:100px;border:1px solid;'></div>
// index.html
<style>
*{
margin:0;
padding:0;
}
</style>
// index.html
<link rel="stylesheet" type="text/css" href="reset.css" />
// index.css
@import url(common.css);
// index.html
<style>
@import url(index.css);
</style>
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(':')
}
function getDays (year, month) {
return new Date(year, month + 1, 0).getDate()
}