关于HarmonyOS的学习

day30

一、自执行函数

+ IIFE ​ + 语法 ​ => (function(){}()) ​ => (function(){})() ​ => !function(){}() ​ => ~function(){}() ​ + 特点 ​ => 当函数调用完毕后,存储空间会默认被销毁 ​ + 作用 ​ => 页面初始化 ​ => 配合闭包使用 ​ => 做模块化(伪模块化)

    let fn = (function(){
        console.log('hello')
    })()
    console.log(fn) // undefined
​
    let fn2 = function(){
        console.log('hello')
    }
    fn2()
    console.log(fn2)

二、伪模块化(解决命名冲突,便于依赖管理)

1.AMD(异步模块定义) 依赖前置:提前引入,文件开头把需要的模块一次性全部引入,后面直接用 前期消耗大,后期执行效率高

2.CMD(通用模块定义) 按需加载:在代码执行过程中需要一个模块了再去加载 整个曲线比较平滑

3.CommonJS 适用于服务端的js模块化,node.js

4.ES6 Module 现在大多主流浏览器都支持 条件: ①服务器环境下打开,vscode插件 live server ②在script标签中加入type="module" 导出: ​ => export ​ => export default 导入: ①单个导出的代码,在接收的时候必须以解构赋值的方式接收。如果遇到导出的文件里面有相同的命名的变量,可以使用as关键字来取别名,避免发生冲突问题 ②导入的语法(默认导入),都会默认进行声明提升,会提升到最顶端。但是建议,导入的语法一般放在代码最上面 ③导入(接收的是默认导出的文件里面的代码) ​ => import { } from '路径' ​ => import 变量名称 from '路径'(这种语法默认只能在顶层导入,不能在事件里面使用) ​ => import().then(res=>{})(按需加载)

三、防抖和节流

1.防抖 指的是用户触发事件过于频繁,只要最后一次事件的操作

    let txt = document.querySelector('input')
    let timer = null
    let count = 0
    txt.oninput = function(){
        count++
        console.log(count)
        if(timer != null){
            clearTimeout(timer)
        }
        timer = setTimeout(()=>{
            console.log(this.value)
        }, 500)
    }

2.节流 控制事件执行的次数

    let flag = true
    window.onscroll = ()=>{
        if(flag){
            flag = false
            setTimeout(()=>{
                console.log('hello')
                flag = true
            }, 500)
        }
    }

四、自定义属性方式

<!-- <button data-id="1">按钮</button> -->
​
<button>按钮</button>
<script>
    let btn = document.querySelector('button')
    // console.log(btn.dataset.id)
​
    btn.dataset.id = 1
​
    console.log(btn.dataset.id)

五、H5数据存储方法(能在两个没有关联的页面间获取数据)

1.长期存储(localStorage) ​ => localStorage.setItem() ​ => localStorage.getItem() ​ => localStorage.removeItem() ​ => localStorage.clear()

2.临时存储(sessionStroge) ​ => sessionStroge.setItem() ​ => sessionStroge.getItem() ​ => sessionStroge.removeItem() ​ => sessionStroge.clear()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值