input的onblur和onchange事件区别是什么?
onblur 在 input 失去焦点时候触发。与之对应的是 onfocus 事件。无论 input 是否有值、值是否有变化,都会触发。
onchange 在 input 发生变化然后在失去焦点的时候触发。且先于 onblur 触发。onchange 只有在 input 的值必须与前一次输入不同才会触发。
<input type="text" id="a" placeholder="onchange" onchange="onfun()">
<input type="text" id="b" placeholder="onblur" onblur="onblu()">
<script>
function onfun() {console.log('onchange')}
function onblu() { console.log('onblur') }
</script>
</body>
什么是脱离文档流?有什么办法可以让元素脱离标准的文档流?
文档流就是指元素在 HTML 文档中位置顺序决定排布的过程。HTML 元素有块级元素和行内元素,块级元素一个占一行,行内元素在一行内依次排布。整体元素从上到下的排布顺序如同瀑布一样。
脱离文档流即脱离了排布的规则。可以使用
float
、
absolute/fixed
来脱离文档流。脱离文档流的元素不受文档流内元素的影响。
请使用原生的js实现斐波那契数列
function Fibonacci (n) {
let arr = [1, 1]
for (let i = 2; i < n + 1; i++) {
arr[i] = arr[i - 1] + arr[i - 2]
return arr
//return arr[n]
let Fibonacci = num => {
if (!Fibonacci.sequence) Fibonacci.sequence = [1, 1]
if (Fibonacci.sequence[num] !== undefined) return Fibonacci.sequence.slice(0, num)
for (var i = Fibonacci.sequence.length; i < num + 1; i++) {
Fibonacci.sequence[i] = Fibonacci.sequence[i - 1] + Fibonacci.sequence[i - 2]
return Fibonacci.sequence.slice(0, num)
const fib = (limit = 10, arr = [1, 1]) => {
// 使用循环
// if (limit < 3) {
// return arr;
// const result = arr;
// while (result.length < limit) {
// const len = result.length;
// result.push(result[len - 1] + result[len - 2]);
// return result;
// 使用递归
if (arr.length < limit) {
const len = arr.length;
return fib(limit, [...arr, arr[len - 1] + arr[len - 2]]);
} else {
return arr;
console.log(fib());
console.log(fib(9));