Toán tử ++ -- với tiền tố & hậu tố (Prefix & Postfix) trong JavaScript

Поделиться
HTML-код
  • Опубликовано: 24 янв 2025

Комментарии • 76

  • @F8VNOfficial
    @F8VNOfficial  4 года назад +8

    Anh em làm bài tập tại: fullstack.edu.vn/exercises/lesson/169

  • @glorynt7925
    @glorynt7925 4 года назад +84

    có mẹo dễ nhớ là nếu ++a thì do dấu ++ nó đứng trước a nên nó lấy luôn kết quả tăng 1 còn a++ do a đứng trước dấu ++ nên khi gán nó sẽ lấy giá trị a trước khi tăng 1

  • @trandinhthang5778
    @trandinhthang5778 3 года назад +26

    hiểu đơn giản: i++ -> trả về i rồi mới +1 ở câu lệnh sau. ++i tăng 1 ngay lập tức

  • @petrmai9152
    @petrmai9152 Год назад

    Mới đầu hack não ghê, may đọc cmt của các bạn và tua lại video nên hiểu luôn ❤

  • @tiendang6790
    @tiendang6790 3 года назад +4

    Suýt nữa thì lạc lối ở phần sau cùng của video, nhưng may anh giảng khá kỹ và cho 2 ví dụ cũng khá cân não cho nên em đã hiểu, cảm ơn anh

  • @NamNguyen-ze7hv
    @NamNguyen-ze7hv 3 года назад +1

    nghe bài này lú như học triết anh ạ :>

  • @vanhungvu1196
    @vanhungvu1196 2 года назад

    nhức đầu quá, hứa sẽ chăm chỉ học . huhu
    biết vậy ngày xưa chăm học hơn

  • @NamHoang-un1yu
    @NamHoang-un1yu 10 месяцев назад

    em đã thông, cản ơn tean F8

  • @nhatkhangPham-kw1zt
    @nhatkhangPham-kw1zt 5 месяцев назад

    dễ nhớ quá hay

  • @phamvy8648
    @phamvy8648 3 месяца назад

    Lúc đầu mình bị stuck chổ output = number++ + --number
    mình nghĩ khúc number++ => giá trị chổ này là 7 và cục -- number sau đó là 6 nên phải bằng 13
    nhưng không phải vậy
    giờ mình đã hiểu rồi
    1. var number =6
    2. var output = number++ + --number
    ngay dòng số 2 , (number ++) => cái cục chổ này có giá trị sẽ là 6 vì nó sẽ lấy giá trị trước khi tăng của number
    nó lấy giá trị đó để cộng xong thì nó mới tăng lên 7
    tức là cái giá trị để mà đem ra cộng trong cái cục (number++) là 6,
    sau khi cho giá trị là 6 xong, lúc đó number sẽ được tăng lên 7 và mang giá trị đó tiếp tới biểu thức tiếp theo,
    lúc này number có giá trị là 7
    tiếp tới cái cục (--number) tức là number trừ 1 . vì vậy giá trị của cái cục --number khúc này nó là 7 - 1 =6
    vì vậy nên console.log(output) nó sẽ = 6 + 6 = 12
    ==============================================

    1. var number =6
    2. var output = ++number + --number
    thì lúc này chổ này console.log(output) mới bằng 13 nè
    dòng 2 cục (++number) sẽ có giá trị là 7 liền luôn vì nó cộng vô trước và nó lấy luôn giá trị đó để thực hiện biểu thức
    tới cái cục -- number thì càng dễ hiểu hơn là --number = 7 - 1 = 6
    console.log(output)sẽ bằng 7 + 6 = 13

    • @cuongbk5
      @cuongbk5 2 месяца назад

      cho mình hỏi thêm là khi tính prefix và postfix thì mình sẽ ưu tiên cái nào ko?

  • @vietthanhpham5386
    @vietthanhpham5386 3 года назад +1

    Vậy có thể hiểu tiền tố là trả về giá trị nguyên bản + 1, hậu tố trả về bản copy của giá trị nguyên bản. có phải không ad?

  • @donhathong112k
    @donhathong112k 2 года назад

    kỹ quá chừng.. ))
    cảm ơn anh nhiều nhiều

  • @leminhtao4875
    @leminhtao4875 6 месяцев назад

    hay chú ơi

  • @tientran-tx9yq
    @tientran-tx9yq Год назад

    phần sau lú quá a ơi , logic tầm kout ấy , ông nào vô mấy cty đồi logic tốt dính mấy câu này chắc lun

  • @NganNguyen-qz6wb
    @NganNguyen-qz6wb 4 года назад +2

    Thì ra trước giờ e hiểu sai tiền tố hậu tố 😭 cảm ơn ạ anh giảng dễ hiểu lắm

  • @NhatNguyen-zg6il
    @NhatNguyen-zg6il 2 года назад

    hậu tố phút 5 / sửa bài 9:20

  • @lequangmanh115
    @lequangmanh115 Год назад

    Theo mình hiểu như kiểu trong lặp for (i=0 ;i

    • @giaitrivuive4423
      @giaitrivuive4423 Год назад

      cái này thì không phải nha bạn. Dù i++ hay ++i thì dãy số bạn nhận được vẫn sẽ là 0;1;2. Nguyên nhân là do Sau khi thực hiện xong lần lặp đó thì cú pháp i++ hoặc ++i mới được thực thi để thực hiện tiếp vòng lặp

  • @phamtrungkien9x
    @phamtrungkien9x Год назад

    Bạn là idol của mình.

  •  4 года назад +2

    đội ơn ad :D

  • @nguyenngocle6542
    @nguyenngocle6542 4 года назад +8

    Nếu a++ thì thực hiện xong a mới cộng 1
    Còn ++a thì a +1 xong mới thực hiện
    Hồi giờ em hiểu thế 😂🤣😂

    • @F8VNOfficial
      @F8VNOfficial  4 года назад +17

      Hiểu đơn giản thì ++a sẽ trả về kết quả sau khi + 1 cho a
      a++ thì trả về kết quả trước khi + 1 cho a ^^

    • @nguyenngocle6542
      @nguyenngocle6542 4 года назад

      ❤️❤️❤️❤️

  • @coser5607
    @coser5607 3 года назад +2

    hậu tố là trã về giá trị trước khi tăng. trong 1 dãy phép toán có 1 biến lặp đi lặp lại thì tính đến đâu nó sẽ tạo ra biến phụ để lưu giá trị cho lần thực hiện phép tính hậu tố

  • @nguyenbauc9615
    @nguyenbauc9615 Год назад +1

    ( ++a ) trả về giá trị là ( a+1 ) còn ( a++ )trả về giá trị là ( a )

  • @LongLapTrinh29
    @LongLapTrinh29 3 года назад +1

    Hay quá anh =)) prefix với postfix giờ em mới chú ý cách phân biệt

  • @tuongha6039
    @tuongha6039 2 года назад

    các toán tử này áp dụng như thế nào và kết quả của nó là gì ở trong lập trình web vậy anh ?

  • @GambareDev
    @GambareDev 3 года назад +1

    ++a trả về kết quả sau khi cộng
    a++ trả về kết quả trước khi cộng

    • @tuannguyenmanh5724
      @tuannguyenmanh5724 4 месяца назад

      Đọc comment này cái hiểu luôn. Hay quá ❤

  • @dj_arimakousei
    @dj_arimakousei 8 месяцев назад

    a++ là gán vào gtri của a sau đó a sẽ + thêm 1 do ++ ở sau

  • @duongpham-mq6xh
    @duongpham-mq6xh 3 года назад +1

    e nghĩ nó vẫn thực hiện từ trái qua chứ ạ, num đầu sẽ đc cộng lên bằng 7 r nó gặp dấu trừ sẽ quay sang tính num bên kia bằng 7-1=6,
    giờ nó lại quay lại cái num đầu để cộng, thì num bây giờ là 6 nên là 6+6 ạ

    • @F8VNOfficial
      @F8VNOfficial  3 года назад +1

      Thì là như thế mà em 😅

  • @phamthingocha7854
    @phamthingocha7854 3 года назад +1

    Anh ơi, em muốn hỏi là với phép ++ và -- thế này thì giá trị tạm thời của biến đó sẽ được lưu ở đâu hay nó ghi đè vào đúng ô nhớ của biến đó luôn ạ?
    VD như ở phép toán trên thì number++ thì number = 6, sau đó nó lên thành 7 thì giá trị 7 này đc thay thế cho 6 trong ô nhớ đó hay nó sẽ được lưu ở một chỗ nào đó khác?
    Em cảm ơn anh.

    • @F8VNOfficial
      @F8VNOfficial  3 года назад +1

      Nó tạo ra biến tạm để lưu em nha

  • @truongminhphuc4337
    @truongminhphuc4337 4 года назад +3

    9:30 sao lại ---number =7? vậy a

    • @F8VNOfficial
      @F8VNOfficial  4 года назад +1

      Number là 7, --number là 7 - 1 = 6 em nhé

    • @mythuatQart
      @mythuatQart 4 года назад +5

      giá trị number tiếp theo cập nhật giá trị number đứng trước, bạn không giải thích kĩ chỗ này nên hơi khó hiểu đấy

    • @oggytam6448
      @oggytam6448 3 года назад +1

      @@mythuatQart bạn này nói đúng nè, anh mà giải thích như v thì mọi người sẽ dễ hiểu hơn

    • @CuongHoang-rd1ro
      @CuongHoang-rd1ro 3 года назад +2

      @@mythuatQart tức là number-- sẽ cập nhật giá trị đứng trước nó là ++number = 7 và trả kết quả trước khi + 1 của ++number => =7
      Đúng không bạn

    • @mythuatQart
      @mythuatQart 3 года назад

      @@CuongHoang-rd1ro theo mình hiểu là thế

  • @rachelh1532
    @rachelh1532 4 года назад

    cám ơn

  • @aspireDandelions
    @aspireDandelions Год назад

    Ví dụ 2; var output = ++number * 2 - number - - * 2
    ++ number là 7
    number- - là 7
    Nhưng mà var number = 6 ở trên
    Cho mình hỏi tại number- - đã tự động cập nhật giá trị của mình từ 6 lên 7 khi ++number à ?
    Mình cảm ơn.

    • @hohreview
      @hohreview 11 месяцев назад

      tại vì number- - là hậu tố bạn, nên nó trả về biến coppy, mà biến coppy của nó là ++number = 7, nên nó sẽ = 7

  • @trongduynguyenoan108
    @trongduynguyenoan108 3 года назад +1

    Ở bài cuối Vid,
    Var number = 6;
    var output = ++number * 2 - number-- * 2;
    Number gốc = 6
    => ++number = 7 => cái này là number mới
    nhưng tại sao number-- lại không phải là number mới (7) giảm 1 = 6 mà vẫn là 7 ạ ...
    anh giải thích giúp em vơi ạ

    • @nguyendong5077
      @nguyendong5077 3 года назад +3

      number-- là hậu tố nên lấy số copy là 7 nha, không có tính phép trừ

    • @hoangson4183
      @hoangson4183 2 года назад

      ++a là cộng với 1 rồi dùng luôn số đó cho phép tính. a++ là lấy giá trị a tính xong mới + 1 cho phép tính sau

  • @daicahiep3477
    @daicahiep3477 3 года назад

    --(hậu tố )mức ưu tiên cao hơn ++(tiền tố mà anh)

  • @tranminhtri3713
    @tranminhtri3713 11 месяцев назад

    là sao ạ

  • @imnoobmc5473
    @imnoobmc5473 4 года назад +4

    bài này ko ghi vô từ điển đc rồi ko bt ghi j cho cái đầu mình hiểu nữa :v(chê cái đầu ko chế cái bài nhé)

    • @sonpham-qo5wp
      @sonpham-qo5wp 4 года назад

      theo ý hiểu của mình nhé. tiền tố thì không phải nói rồi, còn hậu tố thì kết quả nó trả về biến copy (việc 3), nhưng giá trị của biến đó đã đc thay đổi (việc 2). ở bài toán cuối video: biến number đầu tiên trả về là 6 (nhưng giá trị của nó sau tính toán là 7), đến biến number thứ 2= giá trị biến number sau tính toán đầu tiên-1-=7-1=6

    • @KhangNguyen-kq2iw
      @KhangNguyen-kq2iw 4 года назад

      @@sonpham-qo5wp nhưng trong video biến sau lại là 7 nên mình k hiểu lắm, phải là 6 chứ nhỉ

    • @sonpham-qo5wp
      @sonpham-qo5wp 4 года назад

      @@KhangNguyen-kq2iw là 7 mà bạn. Vì biến number đã đc gán lại giá trị là 7 ở chỗ number ++ á bạn

    • @CuongHoang-rd1ro
      @CuongHoang-rd1ro 3 года назад

      @@sonpham-qo5wp b giải thích hơi khó hiểu

    • @thongle4473
      @thongle4473 3 года назад

      Bài này bị gai chỗ hậu tố haha mới coi bị ngáo luôn coi lại áp dụng mới hiểu

  • @ManNhi_tl
    @ManNhi_tl 10 месяцев назад

    var a = 6;
    = a++ + --a
    = 6 + 6
    ++a * 2 trừ a++ *2
    7 * 2 trừ 7 * 2

  • @manhkm4884
    @manhkm4884 4 года назад

    ad cho em hỏi chút, như việc anh giải thích ở trên thì sao mình không thể viết kiểu như này được anh nhỉ:
    var valueNumber = 10;
    console.log(((++valueNumber))--); mình thử rồi không chạy, mình thấy tool không báo lỗi cú pháp. ad có thể giải thích về kiểu này được không?

    • @KhangNguyen-kq2iw
      @KhangNguyen-kq2iw 4 года назад

      Hình như do anh đóng mở ngoặc 2 lần thì phải

  • @coser5607
    @coser5607 3 года назад

    Tại sao máy tính lại hiểu nhân chia trước như con người nhĩ ? Vậy là người tạo ra máy tính lập trình cho máy tính hiểu được như vậy luôn ha~?

  • @banha2754
    @banha2754 3 года назад

    cho em hỏi vì sao 5.1%2 lại ra 1.0999999 ạ

    • @hunghoxuan8082
      @hunghoxuan8082 3 года назад

      này là chia lấy số dư đó. 1.0999999 là số dư của thương 2 số đó.

    • @coser5607
      @coser5607 3 года назад

      ​@@hunghoxuan8082 nếu là số dư thì phải ra 1.1 chứ bạn

  • @CuongHoang-rd1ro
    @CuongHoang-rd1ro 3 года назад

    ai tinh giup em var output = number-- - number-- - number--
    voi a
    .-. kho hieu qua

    • @hoangucthanh9323
      @hoangucthanh9323 3 года назад

      6 - 5 - 4 = -3 :))

    • @h_sangg9459
      @h_sangg9459 3 года назад

      nếu number = 6 thì là
      6-5-4

    • @taigiauten
      @taigiauten 2 года назад

      @@hoangucthanh9323 nó cập nhật kết quả đứng trước xong -1 à bạn bằng 5 xong bằng 4

  • @duynguyen7835
    @duynguyen7835 2 года назад

    bài này a giảg e nghe mà loạn quá ko hiểu

  • @brokentv9296
    @brokentv9296 2 года назад

    vẫn k thể hiểu bài này?

    • @developer276
      @developer276 2 года назад

      🤣

    • @fjfjjrhh8724
      @fjfjjrhh8724 2 года назад

      @@developer276 sao khúc cuối nó k * từ trái qua phải là 7*2=14 trước r vế sau 14*2 ông nhỉ

  • @BichNguyen-l7y
    @BichNguyen-l7y Год назад

    number++ - --number theo lẻ phải là 6+5=11 chứ nhĩ , tới đây rối quá

    • @TakehiroTomiyasu-lm4mp
      @TakehiroTomiyasu-lm4mp 9 месяцев назад

      trước khi chạy đến --number thì number lúc này = 7 (do number++ đã chạy xong) rồi b ạ

  • @lifetime727
    @lifetime727 2 года назад

    Giống Python vcl , ai có kinh nghiệm ở python r thì java dễ vãi ỉa

  • @DavidJames535
    @DavidJames535 3 года назад

    :))))