那些年我走过的前端神坑

124 阅读1分钟

input在不同机型表现形式

  • input为number在安卓和ios上表现形式不一致:number类型的input在iOS上可以输入小数点和中文,在安卓上不可以输入中文和小数点

浏览器的页面

  • 如果JavaScript文件中没有操作DOM相关代码,可以将JavaScript脚本设置为为异步加载,用async和defer来标记代码

    <script async type="text/javascript" src='foo.js'></script>
    <script defer type="text/javascript" src='foo.js'></script>
    两者的区别:
    async标志的脚本文件一旦加载完成立即执行,
    defer标志的脚本文件,需要在DOMContentLoaded事件之前执行
    创建dom树,defer和async只能用于外链srcipt
    

==运算判断规则

1.webp 案例:[] == ![] 结果为true

分析:因为!的优先级比 == 高,所以判断的是 [] == false ,false为布尔值,Number(false) 为 0,对比 [] == 0 ,符合第三条【如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,如果得到的值不是基本类型值,则基于返回值再调用toString方法(这个过程即ToPrimitive)】[].valueOf() 为 [] ,[].toString() 为 '', Number('') 为 0 , 所以 0 == 0 结果为true