The Difference between JS Expressions and Statements

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ •

  • @uchennachukwuba
    @uchennachukwuba 11 місяців тому +6

    Only 29 comments? This channel is the most underrated I’ve ever come across. Clear and concise

  • @alisahi8bp10
    @alisahi8bp10 Рік тому +2

    After learning fundamentals of JS & ReactJS from John Smilga (Codding Addict). I was looking for someone who can give a deeper dive into the JS concepts.. And Steve fullfilled everything i was looking forward... All i can say is Thankyou for ur service.

  • @AhmadJubair
    @AhmadJubair Рік тому +4

    Thanks for the clear-cut explanation, Steve. I've been working with Reactjs for some time but still had a bit of confusion about the differences between these two. Understood now.

  • @bostongreen1629
    @bostongreen1629 5 місяців тому

    WOW, I guarantee this will decode makes sense of a lot of concepts when working with JS. BRAVO, the way you explain it

  • @KurkoVarangian-kg2zj
    @KurkoVarangian-kg2zj 8 місяців тому

    This channel has hands down the best explanations

  • @AlazTetik
    @AlazTetik Рік тому +5

    Yet again, great and useful summary!

  • @barungh
    @barungh Рік тому

    When I come to UA-cam, first thing I search for is your new video 🙂

  • @bapi6060
    @bapi6060 Рік тому +4

    Really great explanations!

  • @mehdi-vl5nn
    @mehdi-vl5nn Рік тому +1

    like many other topics in the world of programming languages, is heavily dependent on the language designers' interpretation of meanings.
    Your example:
    const getRectArea = function(width, height) {
    return width * height;
    };
    is actually a Function expression in JavaScript, where functions are objects themselves.
    Another example can be found in JavaScript's Promises, which are often equated with Futures in other languages but are actually coroutines.
    A funny example from the world of Python is that Tasks are actually Futures.

  • @AjayCoding
    @AjayCoding Рік тому +1

    great and simple explanation.

  • @igorr4682
    @igorr4682 Рік тому

    and you can have an expression inside the statement as well. In summary, expressions produce values, while statements perform actions or control the flow of a code

  • @MutalibGozalov
    @MutalibGozalov 10 місяців тому

    Awesome explanation, thanks

  • @shahinza
    @shahinza Рік тому +5

    Thank you professor.

  • @zidan3948
    @zidan3948 Рік тому +2

    Is it safe to say that whatever starts with a keyword is a statement?

    • @SteveGriffith-Prof3ssorSt3v3
      @SteveGriffith-Prof3ssorSt3v3  Рік тому +4

      Almost. Some keywords are values. Eg true false null this.

    • @zidan3948
      @zidan3948 Рік тому +1

      @@SteveGriffith-Prof3ssorSt3v3 I think I get it now, thanks a lot!!

  • @detaaditya6237
    @detaaditya6237 Рік тому

    Hi professor, thanks for the explaination!
    I want to ask about this part: let x = function(){}. You explained that this is an statement. Are you referring to the whole line or only the `function(){}` part? Because `function(){}` seems to work differently when it is standalone vs when assigned to a variable or parameter of another function. When standalone, it seems like it behaves like a statement. But when it is assigned, it returns the function value - which makes it behave like an expression. Is this true? Please correct me if I'm wrong sir.
    Once again, thanks a lot!

    • @SteveGriffith-Prof3ssorSt3v3
      @SteveGriffith-Prof3ssorSt3v3  Рік тому +1

      the whole line let x = function () { } is a statement.
      function ( ) { } is an expression. It is a value that you could put into a variable. If you wrap it in a set of parentheses and put another set after it then it becomes an IIFE Immediately Invoked Function Expression.
      you could place function ( ) { } inside a console.log( ) without an error. That's a good indication that it is an expression.

  • @s1gma9000
    @s1gma9000 8 місяців тому

    killer video, u saved me time!!

  • @traininfobd
    @traininfobd Рік тому

    Sir,
    if assigning a value like a number is an expression but why assigning a ternary operator is a statement?
    var num=343; //Expression
    var alive= isAlive?1:0 / statement
    chatGPT says these are expression ,
    var x = 5; // assignment expression
    var y = x + 3; // arithmetic expression
    ?

  • @Denis_Victorious
    @Denis_Victorious Рік тому

    Actually thanks for your awesome content, but I got a bit confused at this one. Why has been stuff like "let f = function(){}" called a Function Expression (according to MDN docs for example), whereas turns out it's a statement (according to the video)🤔

    • @SteveGriffith-Prof3ssorSt3v3
      @SteveGriffith-Prof3ssorSt3v3  Рік тому

      Here you go:
      function bob( ) {
      //this is a function declaration which includes a name and starts with the keyword function
      //gets hoisted with its identifier `bob`
      }
      const bob = function ( ) {
      //this is a function expression
      //which is part of a statement
      //`bob` gets hoisted but not the function
      }
      ( function ( ) {
      //this is an IIFE
      //immediately invoked function expression
      //not hoisted
      //but run as soon as it is encountered
      })( )

    • @Denis_Victorious
      @Denis_Victorious Рік тому

      @@SteveGriffith-Prof3ssorSt3v3 I've got it eventually, thanks!
      Turns out I had false assumption about hoisting. I didn't realize let/const get hoisted too, only they don't get initialized in advance (in comparison with var/funcDeclarations)
      P.S.: I've just noticed your reply (due to my off comments notifications)

  • @chhavimanichoubey9437
    @chhavimanichoubey9437 Рік тому +1

    Interview question no doubt

  • @Strasbourgeois
    @Strasbourgeois Рік тому

    let f = function(){} is a statement that doesn't start with the keyword function but has a function definition within it. So it is a function expression. Am I right?
    Love your videos very much

  • @Stoney_Eagle
    @Stoney_Eagle Рік тому

    So basically all I have to think of is "Can I fit this in a jsx return", basically I now never have to think about it again. neat☺

  • @apex-lazer
    @apex-lazer Рік тому

    Thank you again!

  • @ВолодимирДжичко

    Thanks ❤

  • @Sonu_Kr95
    @Sonu_Kr95 Рік тому

    Thanks

  • @MarstonH
    @MarstonH 10 місяців тому

    🔥