来源(第四范式2019前端面试题):https://www.nowcoder.com/profile/2496345/test/21517591/318685#summary
1.折半查找
已知一个有序表为(12,18,24,35,47,50,62,83,90,115,134),当折半查找值为90的元素时,经过()次比较后查找成功?
2次
第一次折半得到62,83,90,115,134,第二次折半时可直接得到90。
2.常用图片格式
SVG(无损压缩、支持动画)
1、矢量图形,文件比较小,同时也能提供高清晰的画面,适合于直接打印或输出;
2、图像文件可读,易于修改和编辑;
3、可以方便的创建文字索引,从而实现基于内容的图像搜索;
4、可以用来动态生成图形。也可以与现有技术可以互动融合。
JPEG(有损/无损)
1、支持渐进传输,传输过程中图片从模糊到清晰;
2、支援高动态范围成像、支援图片透明度。
GIF(无损压缩、支持动画、8位压缩最多处理256种颜色)
1、优秀的压缩算法使其在一定程度上保证图像质量的同时将体积变得很小;
2、可插入多帧,从而实现动画效果;
3、可设置透明色以产生对象浮现于背景之上的效果。
PNG(无损压缩)
1、分为8位,24位,32位。其中PNG24不支持透明;
2、渐进显示和流式读写;
3、保留图像名称、作者、版权、创作时间。
通俗理解有损压缩和无损压缩:有损压缩删除了不易被人眼察觉的颜色细节,减少了图片在内存和磁盘上的占用空间。无损压缩则首先记录图片的那些颜色是相同的,哪些颜色是不同的,然后压缩相同的颜色,减少了磁盘占用空间,但是不能减少内存占用量——这是因为当从磁盘读取图片时,丢失的颜色都会被填回来。如果要减少图片内存占用量就必须用有损压缩方法。
3.深拷贝与浅拷贝
基本数据类型的简单的赋值就是深拷贝,所以在说深拷贝和浅拷贝区别的时候我们一般考虑的是引用数据类型。
let a = {
age: 1
}
let b = a
a.age = 2
console.log(b.age) // 2
let a = {
age: 1
}
let b