Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Microsoft Virtual Academy content

This video is part of a free online course from Microsoft Virtual Academy, click here to view the full course and take advantage of many additional features such as assessments, slides, learning plans and more.

JavaScript Functions - 07

17 minutes, 29 seconds


Right click “Save as…”

Functions are central to JavaScript, much in the same way classes are central to Object Oriented Programming languages like Visual Basic or C#. In this lesson, Bob demonstrates the basics of creating and calling functions, passing arguments, using the arguments object, and creating function literals as well as anonymous functions.


Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • RafaelRafael

    great work bob

    you are a very good professor

    tks for your series

  • Thanks for this great series Smiley

  • shahanashahana

    Hi bob,
    your demonstration is really admirable,thanx alot for a really good series.

  • PavloPavlo

    Thanks Bob! You and your team did great job! :)

  • Hi  BobHi Bob

    Thanks Bob! your videos are really good.very nice videos and easily understanding....
    Thanks alot..sharing videos..........

  • function add() {   

    var tempValue = 0;   

    for (1 = 0; 1 < arguements.length; 1++)   


     tempValue += arguements [1];      


     return tempValue;   


      var myValue = add(1,2,3,4,5);  

     alert (myValue);

    I can not get this piece of code to show up when i save it this is the first exercise that i have done and not been able to work out where I am going wrong. Help!

  • Try spelling argument correctly and you may get it to work...really sorry to have troubled ANYONE with my inability to spell correctly... Very Embarrassed!! I am really enjoying these exercises they're great!

  • @TGWC13: We've all been there.  Smiley  Don't worry ... this is not simple stuff.  It's easy to overlook little things.

    @Rafael:  @MohamedBakr:  @shahana:  @Pavlo:  @Hi Bob:  Thanks for the nice words!  Smiley

  • NicoNico

    @TGWC13 your for loop is wrong. It's i not the number 1

    for (i = 0; i < arguements.length; i++)


    tempValue += arguements [i];


  • NicoNico

    <-- lol Apple logo on MS page

    I forgot to write some nice words ^^

    @Bob thank you very much for your great tutorials. I'm enjoying them very much. I started with the HTML5 & CSS3 Fundamentals and I really enjoyed all the hours "we" spent together :D

    Have you ever thought about going to Hollywood becoming a movie star? You do very well in front of the camera!

    Thanks a lot!

  • @Nico: You're funny.  re: Mac ... I don't think Microsoft hates Apple per se ... Office for Mac is a pretty huge seller.  Smiley  They compete in some ways and partner in others.  It's a complicated relationship ... but I'm not a Microsoft employee and you should ignore whatever I say on the matter.

    And no, probably not going to pursue Hollywood anytime soon.  Not a lot of need for middle-aged gray-hair, overweight dudes on TV.  Smiley  Thanks though .. made me laugh.

  • SalSal

    Nice words!
    Are you saying that an anonymous function is one created and run all at once?
    And, like the function literal, because I haven't given it a name, I can't run it (call it) again?

  • @Sal: Yes, that is a characteristic of an anonymous function, but it's not its only characteristic or benefit.  I was going to try and enumerate them, but once again, Wikipedia does a nicer job than I could do on my own:


  • shondralynnshondralynn

    Hi Bob,

    I would like to know if it is possible to use Javascript for a Real Estate Website?

  • @shondralynn: Absolutely, I'm betting most real estate sites use it in some capacity ... the question is, what functionality do you need and can JavaScript address it?  That's something only you can answer.

  • I think the developers of this website need to check its spam detection algorithm.

    Here is a link to the screen cast.

    please answer the question in the video.

  • @dsilvadarius: That video is marked private.  Sad  Couldn't see it.

    Also, which posts are you referencing?  I monitor each post and remove ones that are spammy.  Of course I leave the ones that make me feel good about myself.  Wink

  • On a serious note. I wanted to learn JavaScript for a long time even prayed about it and your the answer. Your more than anyone can bargain for. You impart your knowledge very nicely. I discovered you also uploaded a series on vb and c#. Which language you recommend i take up having JavaScript under my belt.

  • Which of the links below refer to your use of argument at 4:56 in this video ? (I shortened the urls to see if i can fool the spam detection algorithm)




  • @dsilvadarius: Hi, trying to catch up ... a bit confused ... are you good?  Still having problems?  Anything I can help with?

  • Question 1) Have any idea why google chrome and opera output undefined in the console window even when every this is defined in the code. why do the f12 developer tools (internet explorer) and firefox (firebug) not show it?

    Question 2) How can a value be defined and have the value undefined at the same time?

    watch this[ www.youtube.com/watch?feature=player_detailpage&v=v2ifWcnQs6M#t=1184s ]watch 30 seconds to get an idea of what i'm talking about.

    about the question in the previous post i want to choose between c# and vb which would be better suited for me as a web developer having javascript under my belt?

  • Did i offend you or something?  You don't normally take so long! I apologize if i did.

  • @dsilvadarius: No, you certainly did not offend me.  I drove 14 hours from Dallas to Chicago this past week (and back yesterday) to be with my dad who is 81 and in ICU in the hospital.  Heart, lungs, kidneys ... you name it.  I was trying to help my mom with end of life type issues.  I"m back in the office today and digging out.

    Your question required I listen to Crockford which requires my full mental capacities, most of which I was unable to devote to anything last week.  I'll have an answer for you later today ... even if it is "I have no idea."  Thanks!

  • oh! you reminded me of when my dad was in the ICU for heart attack. My mum was so devastated  had almost given up hope, a miracle was required and we got it. He's on life support (a stent) but he's in good shape. he goes for check up every now and then but he's good. So take your time i'm in no hurry. I'll be keeping your family in my prayers.

  • baerspectivebaerspective

    why is there no semi-colon after "for (i = 0; i < arguments.length; i++)"?

    btw: thank you so much for offering these videos. great lessons. not a natural coder but am following along as best i can. hope it will start to differ more from PHP. i did very poorly.....don't like PHP

  • MikeMike

    Possibly someone can help here. I am new to all of this and I am trying to get a handle on this. In lesson 7 we created an input button with the onclick firing a JS function. It works with the first example. I am playing around with this and am trying to get the onclick event to display Howdy, pardner (like the second example). The onclick event will display Howdy,undefined it will not display the pardner. I will post the code possibly someone can enlighten me.
    <!DOCTYPE html>

    <title>JavaScript Example</title>
    <meta charset="UTF-8">

    <script type="text/javascript">
    function myNewFunction(myValue) {
    alert("Howdy, " + myValue);





    <h1>JavaScript Example</h1>
    <input type="submit" value="push this" onclick="myNewFunction();" />



  • Clint RutkasClint I'm a "developer"

    @Mike: you aren't passing in an argument which when it gets converted into a string is "undefined" as it can't figure out what it actually is.  If you did


    it would work


  • Clint RutkasClint I'm a "developer"

    @baerspective: if I'm understanding your question correctly, if you do for(var x = 0; x < 10; x++); you're not really doing any work.  You use the { } to indicate where you are doing work for that loop OR it is the first executed line after the for loop

    If it is  for(var x = 0; x < 10; x++;), you don't really need to the semi-colon for the last statement.  It is just how the language works.  Think it is like English where we have short hands for certain things.

  • Clint RutkasClint I'm a "developer"


    q1:  I need to know what code you're talking about.  Could be Trident vs WebKit vs Gecko's javascript engine / debugging.

    q2:  believe the right answer is you can define a variable like var foo; which then makes is there yet it doesn't have any defined value so it is undefined.

  • BriDominguezBriDominguez Yata!

    So there are different ways to create functions in JS. For example the way you are showing here is simpler than in other places which teach it like:

    var functionName = function(parameter,...)





    So are both versions identical in the way they function?

  • Clint RutkasClint I'm a "developer"

    @BriDominguez: Basically, yes.  Mozilla has a good explanation of the different ways you can create functions.  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FFunctions_and_function_scope#Function_constructor_vs._function_declaration_vs._function_expression

  • @BriDominguez: ... and to add on what Clint said, we talk about those sorts of things later in this series.  I didn't want to discuss *all* the ways to create a function too early ... that would be overwhelming.  Smiley

  • TylerTyler

    Bob, you made a crucial mistake in this video. That shirt you're wearing does not translate well to the camera (Moire effect).

    I'm not sure if I should program a function to reduce the loud stripes on the shirt or quit programming altogether due to this mishap and inform my boss that Bob's stripes have forced my resignation.

  • @Tyler: Actually, we have fixed this bug.  Download this and apply this patch to the existing video:



Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.