美文网首页
📕 史上最实用的JS笔记

📕 史上最实用的JS笔记

作者: 一名有马甲线的程序媛 | 来源:发表于2020-12-29 14:15 被阅读0次

1. 同步与异步

同步和异步的区别是什么?分别举一个同步和异步的例子

同步会阻塞代码执行,而异步不会阻塞代码执行。
alert 是同步,setTimeout 是异步

前端使用异步的场景有哪些

定时任务: setTimeout,setInterval
网络请求:ajax请求,动态 img 加载
事件绑定

🎈 前端使用异步的场景

  1. 定时任务:setTimeout, setInterval
  2. 网络请求:ajax 请求,动态 img 加载
  3. 事件绑定

🎈 ajax 请求代码示例

console.log('start')
$.get('./data.json', function (res) {    
    console.log(res)
})
console.log('end')

🎈 img 加载示例

console.log('start')
var img = document.createElement('img')
img.onload = function () {    
    console.log('loaded')
}
img.src = '/xxx.png'
console.log('end')

🎈 事件绑定示例

console.log('start')
document.getElementById('btn1').addEventListener('click', function () {
    alert('clicked')
})
console.log('end')

2. 日期

获取 2020-07-06 格式的日期

function formatDate(dt) {    
    if (!dt) {
        dt = new Date()
    }    
    var year = dt.getFullYear();  // 年
    var month = dt.getMonth() + 1;    // 月
    var date = dt.getDate();    // 日
    if (month < 10) {
        month = '0' + month
    }    
    if (date < 10) {
        date = '0' + date
    }    
    return year + '-' + month + '-' + date;
}
formatDate();
Date.now()      // 获取当前时间的毫秒数
var dt = new Date()
dt.getTime()        // 获取毫秒数
dt.getFullYear()    // 年
dt.getMonth()       // 月(0-11)
dt.getDate()        // 日(1 - 31)
dt.getHours()       // 小时 (0 - 23)
dt.getMinutes()     // 分钟(0 - 59)
dt.getSeconds()     // 秒(0 - 59)

3. 获取随机数

获取随机数 Math.random()
获取随机数,要求是长度一致的字符串格式

function random () {    
    var rd = Math.random() + '0000000000';    
    return rd.slice(0, 10);
}
random();

4. 写一个能遍历对象和数组的通用 forEach 函数

function forEach(obj, fn) {    
    var key;    
    if (obj instanceof Array) { // 如果传入的obj是Array的实例,就说明它为数组格式
        obj.forEach(function (item, index) {
            fn(index, item)
        })
    } else {        
        for (key in obj) {            
            if (obj.hasOwnProperty(key)) { // hasOwnProperty返回布尔值 用来判断自身属性是否存在
                fn(key, obj[key])
            }
        }
    }
}

5. 数组API

  • 🎈 forEach 遍历所有元素
var arr = [1, 2, 3]
arr.forEach(function (item, index) {    // 遍历数组的所有元素
    console.log(index, item)
})
  • 🎈 every 判断所有元素是否都符合条件
var arr = [1, 2, 3]
var result = arr.every(function (item, index) {    
    if (item < 4) {        
        return true
    }
})
console.log(result)
  • 🎈 some 判断是否有至少一个元素符合条件
var arr = [1, 2, 3]
var result = arr.some(function (item, index) {    
    if (item < 2) {        
        return true
    }
})
console.log(result)
  • 🎈 sort 排序
var arr = [1, 4, 2, 3, 5]
var arr2 = arr.sort(function (a, b) {    
    // 从小到大排序
    return a - b    
    // 从大到小排序
    // return b - a
})
console.log(arr2)
  • 🎈 map 对元素重新组装,生成新数组
var arr = [1, 2, 3, 4]
var arr2 = arr.map(function (item, index) {    
    return '<b>' + item + '<b/>'
})
console.log(arr2);
  • 🎈 filter 过滤符合条件的元素
var arr = [1, 2, 3]
var arr2 = arr.filter(function (item, index)) {    
    // 通过某一个条件过滤数组
    if (item >== 3) {        
        return item
    }
}
console.log(arr2)

6. 阻止冒泡事件

vue 中 event.stopPropagation()event.preventDefault() 使用

🎈 1. event.stopPropagation()方法
这是阻止事件的 冒泡 方法,不让事件向document上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开。

🎈 2. event.preventDefault()方法
这是阻止 默认事件 的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素。

🎈 3. return false
这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件;写上此代码,连接不会被打开,事件也不会传递到上一层的父元素;可以理解为return false就等于同时调用了event.stopPropagation()和event.preventDefault()

相关文章

  • 📕 史上最实用的JS笔记

    1. 同步与异步 同步和异步的区别是什么?分别举一个同步和异步的例子 同步会阻塞代码执行,而异步不会阻塞代码执行。...

  • 超实用待产包清单,生娃不慌,不花冤枉钱!

    最近好几个宝妈问到了待产包, 我就拿出了去年整理的笔记, 删去不要的,增加必要的, 史上最实用待产包清单就新鲜出炉...

  • 原型设计规范

    史上最实用的原型设计规范(二) https://www.jianshu.com/p/aaf367d4cb8b 史上...

  • 史上最实用的时尚小扎

    不管在古代还是现代,美这个字一直都是人们心尖尖上的东西,古有征战沙场的铁血姑娘花木兰卸下戎装忙贴花黄,今有此起彼...

  • 最实用的笔记软件

    推荐一款好用的笔记软件——OneNote,在选笔记软件时,最好是一开始就相中了自己满意的软件。因为中途更换软件,将...

  • 【微信营销】第四十五招

    提供实用价值 有个叫"风华绝代石榴君"的公众账号,发了这样一条图文信息(原文有配图,在此略去) 史上最实用石榴剥法...

  • IOS热补丁技术汇总 - 截止2016年12月

    发展进程 开源方案只有JSPath。严重期待DynamicCocoa开源实现原生oc到js转换。 OCS史上最疯狂...

  • 史上最实用的春天挖野菜指南

    春天挖野菜实用指南 诗经曰:“采采苤苜,薄言采之。”淑女们在田间唱着歌采摘车前草,何其温婉。陆游《食荠诗》:“小着...

  • 史上最全最实用产品运营总结

    一、产品运营理念和基础 产品设计是将小孩生出来,作为父母,那产品运营就是要将小孩抚养长大,让他成长,得到发展,而这...

  • 史上最简短最实用的上海迪士尼攻略

    据说迪士尼要在中国大陆建造第二个主题乐园,重庆、成都争得不可开交,为什么呢?上海迪士尼6月16日在蒙蒙细雨中开园,...

网友评论

      本文标题:📕 史上最实用的JS笔记

      本文链接:https://www.haomeiwen.com/subject/tymfoktx.html