前端题目(1)
1.
input输入框的oninput事件和onchange事件的触发时间
oninput事件是在输入框聚焦,开始输入数字之后出发的
onchange事件是在用户输入完之后,失去焦点的时候触发的
2.
let i = 6, j = 6 for(let i = 0; i < 6; i++) { j = i % 6 } console.log(i + j)
在for循环中使用let声明i, i是块级作用域中的。j在每次遍历的过程中被赋值,这里修改的j是全局的,所以遍历之后j的值是5。
最后打印结果是11
但是如果把for循环中的let改成var就会报错,Uncaught SyntaxError: Identifier 'i' has already been declared
这样相当于重新声明全局变量i,但是使用let声明的变量是不能重复声明的。
3.
transition如何起效果
transition原本有个状态,然后在原来状态上设置某个属性过渡,然后在该元素的某个事件上设置该属性的变化,当触发该事件的时候,就触发过渡效果
同时并不是所有的属性都有过渡的效果,这个属性要是具有中间值的属性。
transition与动画的区别
transition的过渡效果是需要事件触发的,而且只能触发一次,过渡只能设置开始和结果
动画是可以多次触发的,而且是不需要事件触发的,可以设置具体的某一帧的状态,设置的这个变化也是需要是有中间值的属性
<style> .fath { height: 100px; background-color: aqua; } .son{ transition: height 1s; background-color: blue; } </style> </head> <body> <div class="fath"> <div class="son"></div> </div> <script> document.getElementsByClassName("fath")[0].addEventListener("click", function () { document.getElementsByClassName("son")[0].style.height = '100px' }) </script> </body>
这里运行的结果就是子元素直接突变到100px,因为子元素初始状态没有设置高度。
4.
typeof的可能值有哪些
undefined, null, string, boolean, number, object, symbol, bigint, function(只多了一个function)
5. 隐式类型转换
false == "" // true
false == null // false
![] == '' // true
6.
下列哪个方法让数组在特定条件下回终止遍历
some,filter,forEach, reduce
7.
console.log(Object.prototype.toString.call(undefined))
打印 [object Undefined] 第二个单词的首字母大写
8.
transform如何开启硬件加速
3D绘制就会开启硬件加速
可以设置transform: translateZ(0)
9.
gen()返回什么
function* gen() { yield 1 yield 2 yield 3 }
返回一个生成器generator
10.
改变原数组的方法
pop, push, shift, unshift, sort, reverse, splice
11.
let obj = { a: 1, foo: () => { console.log(this.a) } } obj.foo() // undefined let obj2 = obj.foo obj2() // undefined
箭头函数是没有this的,他的this是继承的是他所在作用域的this
foo只是obj上的一个属性,他所在的作用域是window
箭头函数的this指向是不可能通过call,apply,bind修改的,只能通过修改所在域的this指向,来间接修改this指向
let obj = { a: 1, foo: () => { console.log(this.a) }, foo1() { console.log(this.a) }, foo2: function () { console.log(this.a) } } obj.foo() // undefined obj.foo1() // 1 obj.foo2() // 1
obj.foo.call(obj) // undefined
foo1是foo2普通函数的简写
12.
json中不能写单引号,也不能写注释。
如若有误,请务必指正

浙公网安备 33010602011771号