• 每日思考(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)
    }
    
  • 相关阅读:
    js判断undefined类型
    【转】 C#操作FTP
    FTP
    Failed to execute request because the App-Domain could not be created. Error: 0x80070002 系统找不到指定的文件。
    [转]C# 安装与部署
    ASP.NET 实现重启系统或关机
    ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
    C#取整函数Math.Round、Math.Ceiling和Math.Floor
    Oracle 更改字符集 更改后之前的中文全成乱码了
    oracle
  • 原文地址:https://www.cnblogs.com/EricZLin/p/12194691.html
Copyright © 2020-2023  润新知