thắc mắc Khó hiểu về khối if trong ngôn ngữ javascript

anh linh vật cứ như đang giả ngu thế nhỉ? anh biết đến v8 cache cơ mà
uzQb2yt.png

ko lẽ tôi phải ignore anh để khỏi thấy một thằng tấu hài rẻ tiền ở cái box này
cache là khái niệm rất phổ biến trong lập trình trong cái hệ điều hành, api rồi hôm nọ nói chuyện tui mới biết frontend như React cũng có cache nên tui nghĩ là cái gì cũng có cache để tăng perfomance, thì việc V8 của các kĩ sư google chả lẽ không có cache, tui đoán vậy thui chứ có biết gì đâu mà giả ngu oan tui:too_sad:
 
cache là khái niệm rất phổ biến trong lập trình trong cái hệ điều hành, api rồi hôm nọ nói chuyện tui mới biết frontend như React cũng có cache nên tui nghĩ là cái gì cũng có cache để tăng perfomance, thì việc V8 của các kĩ sư google chả lẽ không có cache, tui đoán vậy thui chứ có biết gì đâu mà giả ngu oan tui:too_sad:
thôi để tôi ignore anh
KAUdgHo.png
 
câu ông voz lit nói rồi còn gì, tùy trường hợp, có thể ko cần phức tạp đến độ phải xài isEqual
hB8nmx5.png



Ok, cứ cho cái medium là fake số liệu đi, nhưng lodash vẫn chậm hơn native phải ko
BdgiW7R.png

thì đương nhiên native phải hơn, nhưng con số đó ko đáng tin thôi. Native có hỗ trợ thì phải xài nó là đương nhiên rồi...

Còn vụ isEqual là cái tôi muốn hỏi. Dùng react phải deep compare khá nhiều nên performance của isEqual rất quan trọng, mà tôi vẫn đang phải xài lodash vì chưa biết cách tốt hơn.
 
thì đương nhiên native phải hơn, nhưng con số đó ko đáng tin thôi. Native có hỗ trợ thì phải xài nó là đương nhiên rồi...

Còn vụ isEqual là cái tôi muốn hỏi. Dùng react phải deep compare khá nhiều nên performance của isEqual rất quan trọng, mà tôi vẫn đang phải xài lodash vì chưa biết cách tốt hơn.
Vậy dùng lodash là best rồi
 
Cái
JavaScript:
var x = 'voz'

if (x) {
    console.log('dòng 1!')
}

if (x == true) {
    console.log('dòng 2!')
}

Tại sao kết quả chỉ in ra 'dòng 1!', còn không in ra 'dòng 2!', rõ ràng hai cách viết này là như nhau, vì mình nghĩ là cái dấu ngoặc đơn của câu lệnh if, bên trong kiểm tra xem là true hay là false, thì cái đầu là true, tức là x== true (#) rồi mình đem cái suy luận (#) này vào khối if thứ 2 thì sao cái thứ 2 lại là false nhỉ, mình có thử kiểm tra
JavaScript:
console.log(x == true)
thì đúng là kết quả trả về false. Vậy thì cái

JavaScript:
if (x) {
 
}

có bản chất như nào vậy mn:sad:

Cái này làm cho biết thôi chứ thực tế không còn còn viết kiểu vậy nữa, lập trình javascript phải biết thêm khái niệm Lint nữa , cài Eslint vô nó sẽ giúp kiểm tra các lỗi cú pháp như vậy
 
Cái


Cái này làm cho biết thôi chứ thực tế không còn còn viết kiểu vậy nữa, lập trình javascript phải biết thêm khái niệm Lint nữa , cài Eslint vô nó sẽ giúp kiểm tra các lỗi cú pháp như vậy
So sánh bằng thì vẫn cần nhưng mà so sánh lớn hơn bé hơn thì ko có kiểu chặt, mình không học sợ ko hiểu nó chạy như nào ấy, ví dụ như các biến var, const, let hình như giờ cái ide nó cứ yêu cầu chuyển sang const nhưng tác giả của you dont know js nói là cái đó vô nghĩa vì: nó sợ mình ko biết phân biệt var const let và cách sử dụng phù hợp hay sao mà phải nhắc nhở😢
 
So sánh bằng thì vẫn cần nhưng mà so sánh lớn hơn bé hơn thì ko có kiểu chặt, mình không học sợ ko hiểu nó chạy như nào ấy, ví dụ như các biến var, const, let hình như giờ cái ide nó cứ yêu cầu chuyển sang const nhưng tác giả của you dont know js nói là cái đó vô nghĩa vì: nó sợ mình ko biết phân biệt var const let và cách sử dụng phù hợp hay sao mà phải nhắc nhở😢
So sánh bằng phải dùng "===" , phải ép kiểu trước khi so sánh , javascript nó không quy định vậy nhưng làm dự án thì phải theo mấy quy tắc đó , tool như eslint nó giúp kiểm tra các lỗi cú pháp như vậy , typescript hay conts let không có giá trị gì với máy , nhưng nó cải thiện tương tác với các tool như eslint cải thiện điểm yếu của ngôn ngữ cũng như nâng cao trải nghiệm của người lập trình
 
So sánh bằng phải dùng "===" , phải ép kiểu trước khi so sánh , javascript nó không quy định vậy nhưng làm dự án thì phải theo mấy quy tắc đó , tool như eslint nó giúp kiểm tra các lỗi cú pháp như vậy , typescript hay conts let không có giá trị gì với máy , nhưng nó cải thiện tương tác với các tool như eslint cải thiện điểm yếu của ngôn ngữ cũng như nâng cao trải nghiệm của người lập trình
đa số thì cứ dùng "===" nhưng vẫn có 1 vài case cần dùng "==".
vd để check value có undefined hoặc null hay ko thì có thể dùng value == null để check 2 trường hợp undefined hoặc null.
 
đa số thì cứ dùng "===" nhưng vẫn có 1 vài case cần dùng "==".
vd để check value có undefined hoặc null hay ko thì có thể dùng value == null để check 2 trường hợp undefined hoặc null.
Thì dùng 2 lần "===" cho mỗi trường hợp null hoăc undefided
 
JavaScript:
var x = 'voz'

if (x) {
    console.log('dòng 1!')
}

if (x == true) {
    console.log('dòng 2!')
}

Tại sao kết quả chỉ in ra 'dòng 1!', còn không in ra 'dòng 2!', rõ ràng hai cách viết này là như nhau, vì mình nghĩ là cái dấu ngoặc đơn của câu lệnh if, bên trong kiểm tra xem là true hay là false, thì cái đầu là true, tức là x== true (#) rồi mình đem cái suy luận (#) này vào khối if thứ 2 thì sao cái thứ 2 lại là false nhỉ, mình có thử kiểm tra
JavaScript:
console.log(x == true)
thì đúng là kết quả trả về false. Vậy thì cái

JavaScript:
if (x) {
 
}

có bản chất như nào vậy mn:sad:
Theo mình dòng 2 khi chạy nó sẽ như thế này:
if ('voz' == true) {
console.log('dòng 2!')
}

mà so sánh string với boolen thì mặc định là false rồi còn gì nữa.

Nếu có gì sai mọi người lượng thứ, đừng gạch đá, tội em
 

Thống kê chủ đề

Ngày tạo
Chief Technology Officer,
Người trả lời cuối
Hàn Quá Nhanh,
Trả lời
70
Lượt xem
5.179
Quay lại
Lên đầu trang