分析一套源代码的代码规范和风格并讨论如何改进优化代码

js判断用户访问的是PC还是mobile

  1. var browser={
  2.  
    versions:function(){
  3.  
    var u = navigator.userAgent, app = navigator.appVersion;
  4.  
    var sUserAgent = navigator.userAgent;
  5.  
    return {
  6.  
    trident: u.indexOf('Trident') > -1,
  7.  
    presto: u.indexOf('Presto') > -1,
  8.  
    isChrome: u.indexOf("chrome") > -1,
  9.  
    isSafari: !u.indexOf("chrome") > -1 && (/webkit|khtml/).test(u),
  10.  
    isSafari3: !u.indexOf("chrome") > -1 && (/webkit|khtml/).test(u) && u.indexOf('webkit/5') != -1,
  11.  
    webKit: u.indexOf('AppleWebKit') > -1,
  12.  
    gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
  13.  
    mobile: !!u.match(/AppleWebKit.*Mobile.*/),
  14.  
    ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
  15.  
    android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
  16.  
    iPhone: u.indexOf('iPhone') > -1,
  17.  
    iPad: u.indexOf('iPad') > -1,
  18.  
    iWinPhone: u.indexOf('Windows Phone') > -1
  19.  
    };
  20.  
    }()
  21.  
    }
  22.  
    if(browser.versions.mobile || browser.versions.iWinPhone){
  23.  
    window.location = "http:/www.baidu.com/m/";
  24.  
    }

    js如何判断用户是否是用微信浏览器

    1. function isWeiXin(){
    2.  
      var ua = window.navigator.userAgent.toLowerCase();
    3.  
      if(ua.match(/MicroMessenger/i) == 'micromessenger'){
    4.  
      return true;
    5.  
      }else{
    6.  
      return false;
    7.  
      }
    8.  
      }
      判断浏览器的简单有效方法
        1. function getInternet(){
        2.  
          if(navigator.userAgent.indexOf("MSIE")>0) {
        3.  
          return "MSIE"; //IE浏览器
        4.  
          }
        5.  
           
        6.  
          if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
        7.  
          return "Firefox"; //Firefox浏览器
        8.  
          }
        9.  
           
        10.  
          if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
        11.  
          return "Safari"; //Safan浏览器
        12.  
          }
        13.  
           
        14.  
          if(isCamino=navigator.userAgent.indexOf("Camino")>0){
        15.  
          return "Camino"; //Camino浏览器
        16.  
          }
        17.  
          if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
        18.  
          return "Gecko"; //Gecko浏览器
        19.  
          }
           

          列举哪些做法符合代码规范和风格一般要求

          • 对于脚本语言TypeScript和预处理语言Sass,直接省略了规范文档,采用的是使用对应的校验工具tslint和sasslint,编辑器集成的插件可以及时提醒开发者遵循规范,对于有疑问的错误信息也很容易在网上进行查找。
          • 对于比较灵活的部分,如变量命名、文件创建以及代码内容则采用文档描述加上代码评审的方式,评审方式为互评,先由其它开发者查阅代码进行评论,然后再转给管理员进行审核。

           

          列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进

          一、选择一个好的命名

          命名有两个目标:

          • 清晰:你要知道该命名与什么有关。

          • 精确:你要知道该命名与什么无关。

          当一个命名完成上面两个目标之后,其余的字符就是多余的了。下面是我在开发时的一些命名原则:

          1. 命名中无需含有表示变量或参数类型的单词

          2. 省略命名中不是用来消除歧义的单词

          3. 省略命名中可以从上下文获取的单词

          4. 省略命名中无任何含义的单词

          总结同类编程语言或项目在代码规范和风格的一般要求

          1 前言

          HTML 作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用。本文档的目标是使 HTML 代码风格保持一致,容易被理解和被维护。

          2 代码风格

          2.1 缩进与换行

          [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。

          2.2 命名

          [强制] class 必须单词全字母小写,单词间以 - 分隔。

          [强制] class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。

          [强制] 元素 id 必须保证页面唯一。

          解释:

          同一个页面中,不同的元素包含相同的 id,不符合 id 的属性含义。并且使用 document.getElementById 时可能导致难以追查的问题。

          2.3 标签

          [强制] 标签名必须使用小写字母。

          强制] 对于无需自闭合的标签,不允许自闭合。

你可能感兴趣的:(分析一套源代码的代码规范和风格并讨论如何改进优化代码)