js易忘小知识点-随时看看

1、 函数调用 和 函数地址 情况使用:

调用时 是立即执行函数;赋值函数地址是 触发执行函数

2、逗号运算符:

取最后一个值

3、匿名函数 :

函数没有名字 ,(有一些函数表达式)

4、

splice()作用:增 删 改数组元素
slice()作用:截取数组或字符串

5.、设置字体
@font-face {
   font-family: "myfont" ;
   scr: url();
}
6、比较运算符 < > <= >= === == != !==

① 字符串 或 布尔值 和数值比较 ,先转换成数值类型 , 再比较

console.log("5" > 3) // true
console.log(true > 0) // true

② 字符串 和 字符串 比较 ,按照从左到右的顺序 ,比较 字符在ASCII码表中的大小

console.log("5" > "12") // true
console.log("10" > "12") // false

③ null ,undefined 和 数值 比较
遇== : 不会转换,没有可比性

console.log(null == 0) // false

遇 < > >=等: 通过Number()隐式转换,null 转换为 0 ;undefined 转换为 NaN

console.log(null >= 0) // true

④ null 和 undefined 比较:

console.log(null == undefined) // true
console.log(null === undefined) // false

⑤ NaN 与任何值都不相等 ,包括本身:

console.log("NaN"== "NaN") // true
console.log( NaN== NaN) // false
7、css :图片和文字对齐
vertical-align: middle;//中间对齐
vertical-align: top;//顶部对齐
vertical-align: baseline;//底部对齐
8、浏览器为什么设置为单线程,而不是多线程?

如果浏览器是多线程的 ,那么当两个线程同时对同一个节点发出两个矛盾的 命令时,浏览器不知道应该先执行谁的命令 ,会混乱 ; 所以单线程就 解决了这个问题。

9、css预处理器有:

less
sass

10、垃圾回收

js解释器,解析js代码 ;node 也可以解析js代码。
不管在什么环境运行代码 ,使用完的变量 ,函数 就会进行垃圾回收 ;
垃圾回收方法:① 标记清除
② 引用计数

11、闭包

闭包造成内存泄漏 , 可以手动设置为null ,进行垃圾回收

12、浏览器怎么解析js

① 语法分析
② 预编译 创建GO 对象;和函数AO 对象
③ 执行代码

13、防抖和节流

都是针对高频触发事件!提高效率!
防抖:让事件在n 秒后 执行 , 如果在n秒内再次触发,则重新开始计时。
setTimeout()
节流:让事件每隔n秒 执行一次 ,稀释触发频率。(让事件在n 秒后 执行 , 如果在n秒内再次触发 ,则不执行。)
setInterval()

// 防抖
function fn (){
    console.log("事件处理函数")
}
document.querySelector(".box").onmousemove = delay();
function delay(){
     let tid =null;
     return function(){
          if(tid) clearTimeout(tid);
          tid = setTimeout(()=>{
             fn();
          },500)
     }
}
// 节流
function fn (){
    console.log("事件处理函数")
}
document.querySelector(".box").onmousemove = delay();
function delay(){
     let tid =null;
     return function(){
          if(tid) return;
          tid = setTimeout(()=>{
             fn();
             tid = null;
          },500)
     }
}
13、父子结点margin合并问题

CSS的技术文档中有:
In this specification,the expression collasing margins means that adjoining margins(no non-empty content,padding or border areas or clearance separate them)of two or more boxes(which may be next to on another or nested)combine to form a single margin。
大意为折叠边距意味着会邻接两个或多个盒元素的没有非空内容、没有内边距、没有边区域或用间隙分开它们的外边距合并成一个外边距。

以上就是产生这种现象有原因。父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding或者非空内容(如一段文字),就会一层一层地合并父元素的margin-top成一个单独的margin-top。因此只要给父元素设置个有效的 border或者padding或在子元素前增加一段非空内容(如文字)就可以阻止它去合并父元素的外边距啦。

原文链接:https://blog.csdn.net/weixin_40763897/article/details/103020863

14、优化前端性能?

html :结构清晰,seo语义化标签,优化meta–keyword

css :文件合并,样式选择器预先写好

js : dom操作合并,尽量避免dom操作放到for循环里,尽量多使用事件代理,避免重绘和重排,防抖和节流T模块化

静态资源 :CDN分布式服务器,雪碧图、图片精灵,懒加载或预加载 ,缓存优化,localstrorage sessionstrorage

网络请求:get

webpack插件做优化 :压缩,删除死代码,提取公共代码
1、添加配置,压缩代码
2、使用CDN
3、追加参数,删除死代码,–optimize-minimize
4、提取公共代码

15、去除li标签圆点

list-style:none;

16、胶囊型边角

border-radio为高度的一半

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值