Toán tử dấu phẩy javascript
Toán tử Mô tả+Phép cộng-Phép trừ*Phép nhân**Lũy thừa/Phép chia%Lấy số dư (Phần dư của phép chia)++Tăng-- Biến Show
Các phép tính toán họcPhép tính toán học là chúng ta thực hiện tính toán trên hai hoặc nhiều số (cũng có thể là biến chữ chứa giá trị số) Hoặc các biến (các giá trị số) Hoặc các biểu thức Các số (trong một phép toán học) được gọi là toán học hạng Phép toán (được thực hiện giữa hai lớp toán) được xác định bởi một toán tử Toán hạngToán tửToán hạng100+50 ElementalToán tử cộng ( // Set i to zero. i = 0;30) cộng tổng/ hoặc bổ sung giữa hai hoặc nhiều hạng hạng Dump ElementToán tử trừ ( // Set i to zero. i = 0;31) toán tửToán tử nhân ( // Set i to zero. i = 0;32) chia toán tửToán tử chia ( // Set i to zero. i = 0;33) Phép toán lấy phần dư của phép chiaToán tử lấy dư ( // Set i to zero. i = 0;34) Trong số học, phép chia hai số nguyên tạo ra thương và số dư Trong toán học, kết quả của một mô đun toán học được phép là phần còn lại của một phép chia số học Số tử tăng dầnSố tử tăng dần ( // Set i to zero. i = 0;35) Degradation toán họcToán tử giảm dần ( // Set i to zero. i = 0;36) toán tử tích hợpToán tử tích lũy ( // Set i to zero. i = 0;37) x ** y cho kết quả tương tự như hàm // Set i to zero. i = 0;38 như sau Thứ tự ưu tiên của các toán tửMức độ ưu tiên của toán tử javascript tương tự như thứ tự thực hiện các phép toán được phép trong một biểu thức toán học Kết quả của ví dụ trên là 150 * 3 hay là 100 + 150?. Phép cộng hay phép nhân được thực hiện trước? Tương tự như trong toán học truyền thống, phép nhân sẽ được ưu tiên thực hiện đầu tiên Phép nhân (*) và phép chia (/) luôn có mức ưu tiên cao hơn phép cộng (+) và phép trừ (-) Và (cũng như trong môn toán học ở trường), mức độ ưu tiên có thể được thay đổi bằng cách sử dụng dấu trích đơn Khi sử dụng dấu ngoặc đơn, các phép toán bên trong dấu ngoặc sẽ được ưu tiên tính toán trước Khi nhiều phép toán có cùng mức độ ưu tiên giống nhau (như cộng và trừ), thì phép tính sẽ được tính từ trái sang phải Giá trị ưu tiên của các thuật toán javascriptGiá trịToán tửMô tảVí dụ21( )Nhóm biểu thức(3 + 4)20. thành viên. name20[]Memberperson["name"]20()Function callmyFunction()20newCreatenew Date()18++Postfix Incrementi++18--Postfix Decrementi--17++Prefix Increment++i17--Prefix Decrement--i17. logic không. (x==y)17typeofTypetypeof x16**Lũy thừa (ES2016)10 ** 215*Phép nhân10 * 515/Phép chia10 / 515%Dấu chia dư10 % 514+Cộng10 + 514-Phép trừ10 - 513 213>>>Shift phải (unsigned)x > . =Không bằng nhau. = y11. == Bất đẳng thức nghiêm ngặt. == y10 Bitwise AND & y9^Bitwise XOR ^ y8. Bitwise ORx. y7 && Logic AND && y6. ORx logic. y5??Nullish Coalescingx?? . Tình trạng? . "No"3+=Assignmentx += y3/=Assignmentx /= y3-=Assignmentx -= y3*=Assignmentx *= y3%=Assignmentx %= y3= y3>>>=Assignmentx >>>= y3&=Assignmentx &= . =Bài tậpx. = y2yieldTạm dừng năng suất chức năng x1,Dấu phẩy5 , 6 Giá trị lâu dài của phần mềm đối với một tổ chức tỷ lệ thuận với chất lượng của cơ sở mã. Trong suốt vòng đời của nó, một chương trình sẽ được xử lý bởi nhiều cặp tay và mắt. Nếu một chương trình có thể truyền đạt rõ ràng cấu trúc và đặc điểm của nó, thì nó sẽ ít có khả năng bị hỏng khi sửa đổi trong tương lai không xa. Quy ước mã có thể giúp giảm độ giòn của chương trình Tất cả mã JavaScript của chúng tôi được gửi trực tiếp tới công chúng. Nó phải luôn luôn có chất lượng xuất bản. số lượng gọn gàng. Sự đa dạng về con người, văn hóa và quan điểm là một điều tốt và có giá trị. Đa dạng về phong cách lập trình là một điều xấu. Nó tạo ra xung đột, cản trở khả năng làm việc cùng nhau của mọi người. Nó có thể giúp các lỗi hình thành và ẩn náu dễ dàng hơn Tệp JavaScriptCác chương trình JavaScript phải được lưu trữ và phân phối dưới dạng tệp let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };9 Không nên nhúng mã JavaScript vào tệp HTML trừ khi mã này dành riêng cho một phiên duy nhất. Mã trong HTML bổ sung đáng kể vào trọng lượng trang mà không có cơ hội giảm thiểu bằng cách lưu vào bộ đệm, thu nhỏ và nén Khoảng trắngNếu có thể, những quy tắc này phù hợp với hàng thế kỷ thực hành tốt với phong cách văn học. Những sai lệch so với văn phong chỉ nên được chấp nhận nếu có bằng chứng chắc chắn về lợi ích đáng kể. Sở thích cá nhân không phải là một lợi ích đáng kể Các dòng trống cải thiện khả năng đọc bằng cách tắt các phần mã có liên quan về mặt logic Các khoảng trống phải luôn được sử dụng trong các trường hợp sau
while (true) {
Mọi câu lệnh phải bắt đầu được căn chỉnh với vết lõm hiện tại. Mức ngoài cùng nằm ở lề trái. Khoảng cách thụt vào tăng thêm 4 dấu cách khi mã thông báo cuối cùng trên dòng trước đó là // Set i to zero. i = 0;20 dấu ngoặc trái, // Set i to zero. i = 0;8 dấu ngoặc trái, // Set i to zero. i = 0;0 dấu ngoặc trái. Mã thông báo đóng phù hợp sẽ là mã thông báo đầu tiên trên một dòng, khôi phục lại phần thụt đầu dòng trước đó Toán tử bậc ba có thể gây nhầm lẫn về mặt trực quan, vì vậy hãy bọc toàn bộ biểu thức bậc ba trong dấu ngoặc đơn. Điều kiện, dấu chấm hỏi // Set i to zero. i = 0;23 và dấu hai chấm // Set i to zero. i = 0;24 luôn bắt đầu một dòng, thụt vào 4 dấu cách let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); }; Các mệnh đề (_______ 125, _______ 126, _______ 127, _______ 128, // Set i to zero. i = 0;29) không phải là mệnh đề và do đó không được thụt vào như mệnh đề Việc sử dụng các tab gây ra sự nhầm lẫn, tranh luận và khóc lóc, với rất ít giá trị bù đắp. Không sử dụng tab. Sử dụng không gian Hãy hào phóng với ý kiến. Sẽ rất hữu ích nếu bạn để lại thông tin mà mọi người (có thể là chính bạn trong tương lai) sẽ đọc sau này, những người sẽ cần hiểu bạn đã làm gì và tại sao. Các ý kiến có giá trị nhất nói về ý định và lý do, những điều không dễ dàng phát hiện ra bằng cách đọc mã. Các bình luận phải được viết tốt và rõ ràng, giống như mã mà chúng đang chú thích. Một chút hài hước thỉnh thoảng có thể được đánh giá cao. Thất vọng và oán giận sẽ không Điều quan trọng là các ý kiến được cập nhật. Nhận xét sai có thể khiến chương trình khó đọc và khó hiểu hơn Làm cho nhận xét có ý nghĩa. Tập trung vào những gì không thể nhìn thấy ngay lập tức. Đừng lãng phí thời gian của người đọc với những thứ như // Set i to zero. i = 0; Sử dụng chú thích theo dòng, không chặn chú thích. Các bình luận nên bắt đầu ở lề trái Tuyên bố biếnTất cả các biến nên được khai báo trước khi sử dụng. JavaScript không yêu cầu điều này, nhưng làm như vậy giúp chương trình dễ đọc hơn và giúp dễ dàng phát hiện các biến không được khai báo có thể trở thành hàm ý. Các biến toàn cục ngụ ý không bao giờ được sử dụng. Việc sử dụng các biến toàn cầu nên được giảm thiểu // Set i to zero. i = 0;2 Khai báo hàmTất cả các chức năng nên được khai báo trước khi chúng được sử dụng. Các hàm bên trong phải xuất hiện sau các khai báo biến của hàm bên ngoài. Điều này giúp làm rõ những biến nào được bao gồm trong phạm vi của nó Không được có khoảng cách giữa tên của hàm và dấu ngoặc đơn bên trái // Set i to zero. i = 0;0 của danh sách tham số của hàm đó. Phải có một khoảng trắng giữa dấu ngoặc đơn bên phải // Set i to zero. i = 0;61 và dấu ngoặc nhọn bên trái // Set i to zero. i = 0;20 bắt đầu nội dung câu lệnh. Phần thân được thụt vào bốn khoảng trống. Dấu ngoặc nhọn bên phải // Set i to zero. i = 0;63 được căn chỉnh với dòng chứa phần đầu của phần khai báo hàm // Set i to zero. i = 0;6 Quy ước này hoạt động tốt với JavaScript vì trong JavaScript, các hàm và ký tự đối tượng có thể được đặt ở bất kỳ đâu mà một biểu thức được cho phép. Nó cung cấp khả năng đọc tốt nhất với các chức năng nội tuyến và cấu trúc phức tạp // Set i to zero. i = 0;0 Nếu một hàm theo nghĩa đen là ẩn danh, thì phải có một khoảng trắng giữa từ // Set i to zero. i = 0;4 và dấu ngoặc đơn bên trái // Set i to zero. i = 0;0. Nếu khoảng trắng bị bỏ qua, thì có vẻ như tên của hàm là // Set i to zero. i = 0;4, cách đọc không chính xác // Set i to zero. i = 0;4 Việc sử dụng các chức năng toàn cầu nên được giảm thiểu Khi một hàm được gọi ngay lập tức, toàn bộ biểu thức gọi phải được bao bọc trong dấu ngoặc đơn để rõ ràng rằng giá trị được tạo ra là kết quả của hàm chứ không phải chính hàm đó // Set i to zero. i = 0;5 tênTên nên được hình thành từ 26 chữ hoa và chữ thường ( // Set i to zero. i = 0;67. // Set i to zero. i = 0;68, // Set i to zero. i = 0;69. // Set i to zero. i = 0;00), 10 chữ số (______301. // Set i to zero. i = 0;02) và // Set i to zero. i = 0;03 thanh dưới. Tránh sử dụng các ký tự quốc tế vì chúng có thể đọc không rõ hoặc không được hiểu ở mọi nơi. Không sử dụng ký hiệu đô la ________ 304 hoặc dấu gạch chéo ngược 305 trong tên Không sử dụng thanh gạch dưới // Set i to zero. i = 0;03 làm ký tự đầu tiên hoặc cuối cùng của tên. Nó đôi khi nhằm biểu thị sự riêng tư, nhưng nó không thực sự cung cấp sự riêng tư. Nếu quyền riêng tư là quan trọng, hãy sử dụng đóng cửa. Tránh các quy ước thể hiện sự thiếu năng lực Hầu hết các biến và hàm nên bắt đầu bằng một chữ thường Hàm xây dựng phải được sử dụng với tiền tố // Set i to zero. i = 0;07 nên bắt đầu bằng chữ in hoa. JavaScript không đưa ra cảnh báo thời gian biên dịch cũng như cảnh báo thời gian chạy nếu một // Set i to zero. i = 0;07 bắt buộc bị bỏ qua. Điều tồi tệ có thể xảy ra nếu thiếu // Set i to zero. i = 0;07, vì vậy quy ước viết hoa là một biện pháp bảo vệ quan trọng Nên tránh các biến toàn cục, nhưng khi sử dụng nên ở trong // Set i to zero. i = 0;40 Các câu lệnhBáo cáo đơn giảnMỗi dòng nên chứa nhiều nhất một câu lệnh. Đặt dấu chấm phẩy // Set i to zero. i = 0;41 ở cuối mỗi câu lệnh không kết thúc bằng // Set i to zero. i = 0;20khối // Set i to zero. i = 0;63. Lưu ý rằng một câu lệnh gán đang gán một hàm theo nghĩa đen hoặc theo nghĩa đen đối tượng vẫn là một câu lệnh gán và phải kết thúc bằng dấu chấm phẩy JavaScript cho phép bất kỳ biểu thức nào được sử dụng làm câu lệnh. Điều này có thể che giấu một số lỗi, đặc biệt là khi có chèn dấu chấm phẩy. Các biểu thức duy nhất nên được sử dụng làm câu lệnh là phép gán, lời gọi và // Set i to zero. i = 0;44 Báo cáo hợp chấtCâu lệnh ghép là câu lệnh chứa danh sách các câu lệnh được đặt trong dấu ngoặc nhọn // Set i to zero. i = 0;45
nhãnNhãn tuyên bố nên tránh. Chỉ những tuyên bố này nên được dán nhãn. // Set i to zero. i = 0;2, // Set i to zero. i = 0;52, // Set i to zero. i = 0;9, // Set i to zero. i = 0;54 Tuyên bố // Set i to zero. i = 0; 55Biểu thức giá trị trả về phải bắt đầu trên cùng một dòng với từ khóa // Set i to zero. i = 0;55 để tránh chèn dấu chấm phẩy // Set i to zero. i = 0; 1 Tuyên bốMột tuyên bố // Set i to zero. i = 0;1 nên có một trong những hình thức này // Set i to zero. i = 0;8 // Set i to zero. i = 0; 9 Tuyên bốNên tránh sử dụng // Set i to zero. i = 0;9, ưu tiên các phương thức mảng nếu có thể. Khi câu lệnh // Set i to zero. i = 0;9 được sử dụng, nó phải là một trong những dạng sau // Set i to zero. i = 0;2 câu lệnh whileMột tuyên bố // Set i to zero. i = 0;2 nên có mẫu sau let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };0 Tuyên bố // Set i to zero. i = 0; 52Một tuyên bố // Set i to zero. i = 0;52 nên có hình thức này let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };1 Không giống như các câu lệnh ghép khác, câu lệnh // Set i to zero. i = 0;52 luôn kết thúc bằng dấu chấm phẩy // Set i to zero. i = 0;41 Tuyên bố // Set i to zero. i = 0; 54Một câu lệnh // Set i to zero. i = 0;54 nên tránh, nhưng khi sử dụng nên có dạng này let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };2 Mỗi // Set i to zero. i = 0;25 được liên kết với // Set i to zero. i = 0;54. Điều này tránh thụt lề quá mức. Nhãn // Set i to zero. i = 0;25 không phải là một tuyên bố và không nên được thụt vào như một Mỗi nhóm câu (ngoại trừ // Set i to zero. i = 0;27) phải kết thúc bằng // Set i to zero. i = 0;23, // Set i to zero. i = 0;55 hoặc // Set i to zero. i = 0;25. Đừng rơi qua Tuyên bố // Set i to zero. i = 0; 26Tuyên bố // Set i to zero. i = 0;26 nên có mẫu này let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };3 Nên tránh mệnh đề // Set i to zero. i = 0;29. Nếu nó được sử dụng, nó sẽ có hình thức này let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };4 Tuyên bố // Set i to zero. i = 0; 29Tránh sử dụng câu lệnh // Set i to zero. i = 0;29. Nó có xu hướng che khuất luồng điều khiển của chức năng Tuyên bố let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };01Câu lệnh let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };01 không nên được sử dụng let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };03 và let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };04Sử dụng let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };03 thay vì let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };06. Sử dụng let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };04 thay vì let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };08 Sử dụng mảng khi tên thành viên sẽ là số nguyên liên tiếp. Sử dụng các đối tượng khi tên thành viên là chuỗi hoặc tên tùy ý let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };09 toán tử dấu phẩyTránh sử dụng toán tử dấu phẩy. (Điều này không áp dụng cho dấu phân cách dấu phẩy, được sử dụng trong ký tự đối tượng, ký tự mảng và danh sách tham số. ) Có một ký tự đôi khi là dấu phân cách và đôi khi là toán tử gây nhầm lẫn biểu thức chuyển nhượngTránh làm bài tập ở phần điều kiện của câu lệnh // Set i to zero. i = 0;1 và // Set i to zero. i = 0;2 Là let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };5 một phát biểu đúng? let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };6 dự định? Toán tử let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };12 và let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };13Sử dụng các toán tử let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };12 và let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };13. Các toán tử let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };16 và let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };17 tạo ra kết quả dương tính giả và âm tính giả, vì vậy chúng không nên được sử dụng Điểm cộng và nhược điểm khó hiểuHãy cẩn thận để không theo dõi một let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };18 với let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };18 hoặc let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };20. Mô hình này có thể gây nhầm lẫn. Chèn dấu ngoặc giữa chúng để làm rõ ý định của bạn let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };7 được viết tốt hơn như let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };8 để let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };21 không bị đọc nhầm thành let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };20. Tránh let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };20 let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };24 là Ác maHàm let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };24 là tính năng bị lạm dụng nhiều nhất của JavaScript. tránh nó let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };24 có bí danh. Không sử dụng hàm tạo let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };27. Không chuyển chuỗi tới let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };28 hoặc let integer = function ( value, default_value ) { value = resolve(value); return ( typeof value === "number" ? Math.floor(value) : ( typeof value === "string" ? value.charCodeAt(0) : default_value ) ); };29 |