题目概览
- 网页上的验证码是为了解决什么问题?
- 对图片格式的了解及使用场景
- 写一个方法判断字符串是否为回文字符串
题目解答
网页上的验证码是为了解决什么问题?
- 目的
- 防止机器行为,确定是人为操作,比如登陆、发帖等
- 保护服务器,比如12306买票的时候,各种抢购的时候
- 类型
- 图形验证码
- 字符验证码 文字+混淆 如早期的7456这种结果的验证码
- 复杂字符验证码 复杂文字+混淆 如加入中文等本土化的增加识别难度
- 计算验证码 数字+运算符+混淆 如1+2=? 需要识别表达式增加识别难度
- 精确识别 文字+混淆文字 如选出 优贝在线 中的 贝字,或者选出所有的筷子,所有的红绿灯(12306)
- 滑动拼图验证 图像+滑块+图像凹槽 如常见的滑动拼图,提供商有易盾之类的
- 拼图验证 图像+打乱 需要用户去拼合完成。teamviewer 和 google
- 物理验证
- 手机短信验证码
- 手机语音验证码
对图片格式的了解及使用场景
- GIF
- 优点:GIF是动态的;支持无损耗压缩和透明度
- 缺点:详细的图片和写实摄影图像会丢失颜色信息;在大多数情况下,无损耗压缩效果不如 JPEG 格式或 PNG格式;GIF 支持有限的透明度,没有半透明效果或褪色效果
- 适用场景:主要用于比较小的动态图标
- PNG
- 优点:PNG格式图片是无损压缩的图片,能在保证最不失真的情况下尽可能压缩图像文件的大小;图片质量高;色彩表现好;支持透明效果;提供锋利的线条和边缘,所以做出的logo等小图标效果会更好;更好地展示文字、颜色相近的图片。
- 缺点:占内存大,会导致网页加载速度慢;对于需要高保真的较复杂的图像,PNG虽然能无损压缩,但图片文件较大,不适合应用在Web页面上。
- 适用场景:主要用于小图标或颜色简单对比强烈的小的背景图。
- JPG/JPEG
- 优点:占用内存小,网页加载速度快。
- 缺点:JPG格式图片是有损压缩的图片,有损压缩会使原始图片数据质量下降,即JPG会在压缩图片时降低品质。
- 适用场景:由于这种格式图片对色彩表现比较好,所以适用于色彩丰富的图片。主要用于摄影作品或者大的背景图等。不合适文字比较多的图片。
- SVG
- 优点:SVG是矢量图形,不受像素影响,在不同平台上都表现良好;可以通过JS控制实现动画效果。
- 缺点:DOM比正常的图形慢,而且如果其结点多而杂,就更慢;不能与HTML内容集成。
- 适用场景:主要用于设计模型的展示等。
- WebP
- 优点:WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。
- 缺点:相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源。
- 适用场景:WebP既支持有损压缩也支持无损压缩。将来可能是JPEG的代替品。
写一个方法判断字符串是否为回文字符串
//回文字符串:即字符串从前往后读和从后往前读字符顺序是一致的
function isPalindrome(s) {//方法一
if (s.length === 1) return true
const str = s.replace(/[^a-zA-Z0-9]/g, "").toLowerCase()
const strReverse = str.split('').reverse().join('')
return str === strReverse
}
function palindRome(str){//方法二
var len = str.length;
var str1 = "";
for(var i=len-1; i>=0;i--){
str1+=str[i];
}
console.log(str1 == str)
}