javascriptjavascriptmvc

Why no semicolon at the end of js expression in javascriptmvc app?


I am starting to learn javascriptmvc, and in code samples, I see code without semicolons at the end of expressions. Does this count on automatic semicolon insertion or am I missing something? Code example below:

$.Controller("Contacts.Controller", {
        init: function(){
            this.params = new Mxui.Data();
            $("#category .list_wrapper").mxui_data_list({
                model : Contacts.Models.Category,
                show : "//contacts/views/categoryList",
                create: "//contacts/views/categoryCreate"
            }) // <------ NO SEMICOLON

            $("#location .list_wrapper").mxui_data_list({
                model : Contacts.Models.Location,
                show : "//contacts/views/categoryList",
                create: "//contacts/views/categoryCreate"
            }) // <------ NO SEMICOLON

            $("#company .list_wrapper").mxui_data_list({
                model : Contacts.Models.Company,
                show : "//contacts/views/companyList",
                create: "//contacts/views/companyCreate"
            }) // <------ NO SEMICOLON
                            // etc...
         }
      }) // <------ NO SEMICOLON

Solution

  • Javascript can be forgiving about the lack of a semicolon in ways that other languages are not. However a semicolon is recommended where you've pointed them out.

    If you run the code you've given through JSLint, it throws up a whole stack of warnings, including complaining about those missing semicolons.

    JSLint is a tool for telling you about things in your code which may not be syntax errors but which could cause problems. It generally throws up a lot of errors, even for relatively well written code, but it is good for picking up things which you should fix.

    I would say that those code samples are poorly written because of the missing semi-colons.