每日思考(2020/01/14)

题目概览

  • 网页上的验证码是为了解决什么问题?
  • 对图片格式的了解及使用场景
  • 写一个方法判断字符串是否为回文字符串

题目解答

网页上的验证码是为了解决什么问题?

  • 目的
    • 防止机器行为,确定是人为操作,比如登陆、发帖等
    • 保护服务器,比如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)
}

你可能感兴趣的