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
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 ============================================== và 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
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
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ố
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 ạ
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.
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.
Ở 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 ạ
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
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?
Anh em làm bài tập tại: fullstack.edu.vn/exercises/lesson/169
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
la sao ban
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
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 ❤
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
nghe bài này lú như học triết anh ạ :>
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
em đã thông, cản ơn tean F8
dễ nhớ quá hay
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
==============================================
và
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
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?
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?
kỹ quá chừng.. ))
cảm ơn anh nhiều nhiều
hay chú ơi
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
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
hậu tố phút 5 / sửa bài 9:20
Theo mình hiểu như kiểu trong lặp for (i=0 ;i
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
Bạn là idol của mình.
đội ơn ad :D
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ế 😂🤣😂
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 ^^
❤️❤️❤️❤️
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ố
( ++a ) trả về giá trị là ( a+1 ) còn ( a++ )trả về giá trị là ( a )
Hay quá anh =)) prefix với postfix giờ em mới chú ý cách phân biệt
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 ?
++a trả về kết quả sau khi cộng
a++ trả về kết quả trước khi cộng
Đọc comment này cái hiểu luôn. Hay quá ❤
a++ là gán vào gtri của a sau đó a sẽ + thêm 1 do ++ ở sau
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 ạ
Thì là như thế mà em 😅
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.
Nó tạo ra biến tạm để lưu em nha
9:30 sao lại ---number =7? vậy a
Number là 7, --number là 7 - 1 = 6 em nhé
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
@@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
@@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
@@CuongHoang-rd1ro theo mình hiểu là thế
cám ơn
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.
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
Ở 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 ạ
number-- là hậu tố nên lấy số copy là 7 nha, không có tính phép trừ
++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
--(hậu tố )mức ưu tiên cao hơn ++(tiền tố mà anh)
là sao ạ
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é)
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
@@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ỉ
@@KhangNguyen-kq2iw là 7 mà bạn. Vì biến number đã đc gán lại giá trị là 7 ở chỗ number ++ á bạn
@@sonpham-qo5wp b giải thích hơi khó hiểu
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
var a = 6;
= a++ + --a
= 6 + 6
++a * 2 trừ a++ *2
7 * 2 trừ 7 * 2
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?
Hình như do anh đóng mở ngoặc 2 lần thì phải
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~?
cho em hỏi vì sao 5.1%2 lại ra 1.0999999 ạ
này là chia lấy số dư đó. 1.0999999 là số dư của thương 2 số đó.
@@hunghoxuan8082 nếu là số dư thì phải ra 1.1 chứ bạn
ai tinh giup em var output = number-- - number-- - number--
voi a
.-. kho hieu qua
6 - 5 - 4 = -3 :))
nếu number = 6 thì là
6-5-4
@@hoangucthanh9323 nó cập nhật kết quả đứng trước xong -1 à bạn bằng 5 xong bằng 4
bài này a giảg e nghe mà loạn quá ko hiểu
vẫn k thể hiểu bài này?
🤣
@@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ỉ
number++ - --number theo lẻ phải là 6+5=11 chứ nhĩ , tới đây rối quá
trước khi chạy đến --number thì number lúc này = 7 (do number++ đã chạy xong) rồi b ạ
Giống Python vcl , ai có kinh nghiệm ở python r thì java dễ vãi ỉa
:))))