BOM ------ 立即执行函数
执行 函数 ------ bom 立即
2023-09-11 14:15:54 时间
立即执行函数
- 立即执行函数: 不需要调用, 立马能够自己执行的函数
- 作用: 立即执行函数最大的作用就是 独立创建了一个作用域 里面所有的变量都是局部变量 避免了命名冲突
//1.(function() {})()
(function(a,b){
console.log(a+b);
})(1, 2); //第二个小括号可以看做是调用函数
//2.(function(){}())
(function sum(a, b){
console.log(a+b);
}(2, 3))
flexible 分析
(function flexible(window, document) {
// 获取的html 的根元素
var docEl = document.documentElement
// dpr 物理像素比
var dpr = window.devicePixelRatio || 1
// adjust body font size 设置我们body 的字体大小
function setBodyFontSize() {
// 如果页面中有body 这个元素 就设置body的字体大小
if (document.body) {
document.body.style.fontSize = (12 * dpr) + 'px'
} else {
// 如果页面中没有body 这个元素,则等着 我们页面主要的DOM元素加载完毕再去设置body
// 的字体大小
document.addEventListener('DOMContentLoaded', setBodyFontSize)
}
}
setBodyFontSize();
// set 1rem = viewWidth / 10 设置我们html 元素的文字大小
function setRemUnit() {
var rem = docEl.clientWidth / 10
docEl.style.fontSize = rem + 'px'
}
setRemUnit()
// reset rem unit on page resize 当我们页面尺寸大小发生变化的时候,要重新设置下rem 的大小
window.addEventListener('resize', setRemUnit)
// pageshow 是我们重新加载页面触发的事件
window.addEventListener('pageshow', function(e) {
// e.persisted 返回的是true 就是说如果这个页面是从缓存取过来的页面,也需要从新计算一下rem 的大小
if (e.persisted) {
setRemUnit()
}
})
// detect 0.5px supports 有些移动端的浏览器不支持0.5像素的写法
if (dpr >= 2) {
var fakeBody = document.createElement('body')
var testElement = document.createElement('div')
testElement.style.border = '.5px solid transparent'
fakeBody.appendChild(testElement)
docEl.appendChild(fakeBody)
if (testElement.offsetHeight === 1) {
docEl.classList.add('hairlines')
}
docEl.removeChild(fakeBody)
}
}(window, document))
不积跬步无以至千里 不积小流无以成江海
相关文章
- CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏
- 立即执行函数
- 如何使用 pv 命令监控 linux 命令的执行进度
- js函数只执行一次,函数重写,变量控制与闭包三种做法
- QT-子窗口关闭时,为什么不执行析构函数问题
- iptables执行时报错"iptables : Couldn't load target `standard':No such file or directory"如何处理?
- Jquery :animate反复执行的动画可以利用函数的回调
- SAP RETAIL 事务代码WA08为分配表触发PO后将PO删除,不能再次为该分配表执行WA08了!
- SpringBoot使用多实例QUARTZ出现重复执行问题
- Java的初始化执行顺序(父类static变量->子类static变量->父类成员变量->父类构造器->成员变量->构造器->main函数)
- 转: oracle 存储过程 执行动态 实现sql
- $ajax()或$.get()中的请求成功时运行的函数success无法执行的解决办法
- windows server 2008 不能执行bat
- php执行linux命令的6个函数
- 浅析Vue CompositionAPI和React Hooks对比:hook的意义、两者差别(原理-链表/Proxy、代码执行-每次渲染都执行/组件创建时运行、声明响应式状态、如何跟踪依赖、生命周期、自定义hook、Ref获取元素、计算属性附加函数、Context和provide/inject、在渲染上下文中暴露值)
- python:使用多线程同时执行多个函数
- Jenkins_多项目构建(一):单独建立一个项目按顺序执行其它job
- 对话微软执行副总裁Terry:微软将在中国投入更多
- 练习 2-7 编写一个函数invert(x, p, n),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位求反(即,1变成0,0变成1),x的其余各位保持不变。
- 封装异步API-js先执行完一个函数后再执行下面的逻辑或者方法