• 初学JavaScript七大注意事项


    知识说明:

           初学JavaScript,注意以下七大细节,在实现同样功能的情况下,让我们的代码更易懂、效率更高。

    一、简化代码

    例如:创建对象

    之前是这样的:

    Var car = new object();

    Car.color = “red”;

    Car.wheels = 4;

    Car.age = 8;

    而现在可以写成这样子:

    Var car = {color:’red’, wheels:4, age:8}

    例如:创建数组

    之前是这样的:

    Var studentArray = new Array(‘zhangsan’, ’lisi’, ‘zhaowu’, ‘wuliu’);

    而现在可以写成这样子:

    Var studentArray = {‘zhangsan’, ‘ lisi’, ‘zhaowu’, ‘wuliu’};

    例如:使用三元运算符简化代码

    之前的写法是:

    Var result;

    if(x > 100)

    {

           Result = 1;

    }else{

           Result = -1;

    }

    而现在可以写成:

    Var result = x >100 ? 1 : -1;

    二、使用JSON作为数据格式

    使用Json格式来存储数据:

    var band = {

      "name":"The Red Hot Chili Peppers",

      "members":[

        {

          "name":"Anthony Kiedis",

          "role":"lead vocals"

        },

        {

          "name":"Michael 'Flea' Balzary",

          "role":"bass guitar, trumpet, backing vocals"

        },

        {

          "name":"Chad Smith",

          "role":"drums,percussion"

        },

        {

          "name":"John Frusciante",

          "role":"Lead Guitar"

        }

      ],

      "year":"2009"

    }

    也可以使用JS来存储数据,代码如下:

    <div id = “dataDiv”></div>

    <script>

           Function saveData(data)

    {

           Var out =“<ul>”;

           For(var i=0; i<data.length; i++)

    {

           Out += “<li><a href =”’+data[i].url+’”>+

    data[i].d+</a></li>”;

    }

    Out += ‘</ul>’;

    Document.getElementById(‘dataDiv’).innerHTML = out;

    }

    </script>

    甚至可以将上面JS生成的存储数据的作为API的返回值

    <script src="http://feeds.delicious.com/v2/json/codepo8/javascript?count=15&callback=delicious">

    </script>

    三、尽量使用JavaScript原生函数

    例如:获取一组数据中的最大值

    var maxData = Math.max(0,20,50,10);

    alert(maxData);   //返回的最大值为50

    例如:使用JS给一个元素添加class样式,代码片段如下:

    Function addClass(elm, newclass)

    {

           Var classes = elm.className.split(‘ ‘ );

           Classes.push(newclass);

           Elm.className = classes.join(‘ ’);

    }

    四、事件委托

    例如:

    <h2>Great Web resources</h2>

    <ul id="resources">

      <li><a href="http://opera.com/wsc">Opera Web Standards

    Curriculum</a></li>

      <li><a href="http://sitepoint.com">Sitepoint</a></li>

      <li><a href="http://alistapart.com">A List Apart</a></li>

      <li><a href="http://yuiblog.com">YUI Blog</a></li>

      <li><a href="http://blameitonthevoices.com">Blame it on the

    voices</a></li>

      <li><a href="http://oddlyspecific.com">Oddly specific</a></li>

    </ul>

    最佳脚本书写方式:

    (function(){

      var resources = document.getElementById('resources');

      resources.addEventListener('click',handler,false);

      function handler(e){

        var x = e.target; // get the link tha

        if(x.nodeName.toLowerCase() === 'a'){

          alert('Event delegation:' + x);

          e.preventDefault();

        }

      };

    })();

    五、匿名函数

    var myApplication = function(){

      var name = 'Chris';

      var age = '34';

      var status = 'single';

      function createMember(){

        // [...]

      }

      function getMemberDetails(){

        // [...]

      }

      return{

        create:createMember, get:getMemberDetails

      }

    }();

    //myApplication.get() and myApplication.create() now work.

    六、代码可配置

    你写的代码如果想让别人更容易进行使用或者修改,则需要可配置,解决方案是在你写的脚本中增加一个配置对象。要点如下:

    1、在你的脚本中新增一个叫configuration的对象。

    2、在配置对象中存放所有其它人可能想要去改变的东西,例如CSS的ID、class名称、语言等等。

    3、返回这个对象,作为公共属性以便其它人可以进行重写。

    七、代码兼容性

    兼容性是初学者容易忽略的部分,通常学习Javascript的时候都是在某个固定的浏览器中进行测试,而这个浏览器很有可能就是IE,这是非常致命的,因为目前几大主流浏览器中偏偏IE对标准的支持是最差的。最终用户看到的结果也许就是,你写的代码在某个浏览器无法正确运行。你应该把你的代码在主流的浏览器中都测试一下,这也许很费时间,但是应该这样做。

  • 相关阅读:
    Leetcode 515. Find Largest Value in Each Tree Row
    Paypal2017实习生-软件开发-B卷
    Codeblocks 遇到的问题 Cannot open output file, permission denied
    itoa()函数和atoi()函数详解
    Windows下如何更新 CodeBlocks 中的 MinGW 使其支持新版本 C++
    Leetcode 179. Largest Number
    合并两个有序数组到其中一个数组中
    腾讯2017实习生招聘软件开发编程题
    [LeetCode] 56
    360笔试
  • 原文地址:https://www.cnblogs.com/grnBlogs/p/4646114.html
Copyright © 2020-2023  润新知