JavaScript备忘录

280 阅读1分钟

想到什么就更新上去。

严格模式

'use strict'

数组排序最大

let datas = [1,3,5,7,9];

datas.sort((a, b) => {
    return b - a;
})[0];

数组排序最小

let datas = [1,3,5,7,9];

datas.sort((a, b) => {
    return a - b;
})[0]

数组求和

let datas = [1,3,5,7,9];

datas.reduce((a, b) => {
    return a + b;
}, 0);

数组查找

let datas = ['html', 'css', 'js'];
datas.filter(item => {
    return item.includes('js');
});

阻止锚点默认点击事件

不能用 addEventListener

let ag = document.getElementById('oy');
ag.onclick = e => {
    return false;
};

浏览器滚动到底部判断

if (document.documentElement.scrollTop + document.documentElement.clientHeight >= document.documentElement.scrollHeight) {
    console.log('到底部了');
}

获取浏览器可视宽度

window.innerWidth

json字符串转换成json对象

let oy = '{"loop":true}';

JSON.parse(oy);// {loop:true}

json单引号字符串转换成json对象

let oy = "{'loop':true}";

JSON.parse(oy.replace(/\'/g, '"'));// {loop:true}

获取元素宽高

window.getComputedStyle(document.body).height.slice(0, -2) * 1;// 返回数字类型

获取元素相对于窗口的纵坐标

getTop(e) {
    let offset = e.offsetTop;
    if (e.offsetParent != null) offset += SpTabNav.getTop(e.offsetParent);
    return offset;
}

阻止 a 默认行为

let lis = document.querySelectorAll('ul li a');
lis.forEach((ls) => {
    ls.addEventListener('click', function (e) {
        e.preventDefault();
    });
});

DOM加载完成后运行

document.addEventListener('DOMContentLoaded', function () {
    console.log('DOM加载完成');
});

什么是闭包

  1. 有权访问另外一个函数作用域变量的函数
  2. 具有全局变量的生命周期,同时还是个局部变量

未完待续。