Chức năng cho máy tính javascript
Đây là một bài viết hoành tráng nơi bạn học cách xây dựng một máy tính từ đầu. Chúng tôi sẽ tập trung vào JavaScript mà bạn cần viết—cách suy nghĩ về việc xây dựng máy tính, cách viết mã và cuối cùng là cách làm sạch mã của bạn Show
Đến cuối bài viết, bạn sẽ nhận được một máy tính hoạt động chính xác như máy tính iPhone (không có chức năng 2 và tỷ lệ phần trăm)điều kiện tiên quyếtTrước khi bạn cố gắng theo dõi hết bài học, vui lòng đảm bảo rằng bạn có trình độ JavaScript tốt. Tối thiểu, bạn cần biết những điều này
Trước khi bắt đầuTôi khuyên bạn nên thử và tự xây dựng máy tính trước khi làm theo bài học. Đó là một cách thực hành tốt vì bạn sẽ rèn luyện bản thân để suy nghĩ như một nhà phát triển Hãy quay lại bài học này sau khi bạn đã cố gắng trong một giờ (không quan trọng bạn thành công hay thất bại. Khi bạn cố gắng, bạn nghĩ, và điều đó sẽ giúp bạn tiếp thu bài học nhanh gấp đôi) Cùng với đó, hãy bắt đầu bằng cách tìm hiểu cách thức hoạt động của một máy tính Xây dựng máy tínhĐầu tiên, chúng tôi muốn xây dựng máy tính Máy tính bao gồm hai phần. màn hình và các phím
Chúng ta có thể sử dụng CSS Grid để tạo các phím vì chúng được sắp xếp theo định dạng giống như lưới. Điều này đã được thực hiện cho bạn trong tệp khởi động. Bạn có thể tìm thấy tệp khởi động tại bút này
Để giúp chúng tôi xác định các khóa toán tử, thập phân, rõ ràng và bằng nhau, chúng tôi sẽ cung cấp một thuộc tính hành động dữ liệu mô tả những gì họ làm
Nghe phím bấmNăm điều có thể xảy ra khi một người cầm máy tính. Họ có thể đánh
Các bước đầu tiên để xây dựng máy tính này là có thể (1) lắng nghe tất cả các lần nhấn phím và (2) xác định loại phím được nhấn. Trong trường hợp này, chúng ta có thể sử dụng mẫu ủy quyền sự kiện để lắng nghe, vì các khóa đều là con của 6________số 8_______Tiếp theo, chúng ta có thể sử dụng thuộc tính 7 để xác định loại phím được nhấp
Nếu khóa không có thuộc tính 7 thì đó phải là khóa số
Nếu khóa có 7 hoặc là 00, 01, 02 hoặc 03, thì chúng tôi biết khóa đó là toán tử
Nếu khóa 7 là 05, chúng tôi biết người dùng đã nhấp vào khóa thập phânTheo quy trình suy nghĩ tương tự, nếu phím 7 là 07, chúng tôi biết người dùng đã nhấp vào phím rõ ràng (phím có chữ AC). Nếu khóa 7 là 09, chúng tôi biết người dùng đã nhấp vào khóa bằng
Tại thời điểm này, bạn sẽ nhận được phản hồi 10 từ mọi phím máy tínhXây dựng con đường hạnh phúcHãy xem xét những gì một người bình thường sẽ làm khi họ cầm một chiếc máy tính. “Điều mà một người bình thường sẽ làm” này được gọi là con đường hạnh phúc Hãy gọi người bình thường của chúng ta là Mary Khi Mary cầm một chiếc máy tính, cô ấy có thể nhấn bất kỳ phím nào trong số này
Có thể quá sức khi xem xét năm loại khóa cùng một lúc, vì vậy hãy thực hiện từng bước Khi người dùng nhấn một phím sốTại thời điểm này, nếu máy tính hiển thị 0 (số mặc định), số mục tiêu sẽ thay thế số không Nếu máy tính hiển thị một số khác 0, thì số mục tiêu sẽ được thêm vào số được hiển thị Ở đây, chúng ta cần biết hai điều
Chúng tôi có thể nhận được hai giá trị này thông qua thuộc tính 5 của khóa được nhấp và 12 , tương ứng
Nếu máy tính hiển thị 0, chúng tôi muốn thay thế màn hình của máy tính bằng phím được nhấp. Chúng ta có thể làm như vậy bằng cách thay thế thuộc tính textContent của màn hình
Nếu máy tính hiển thị số khác 0, chúng tôi muốn nối phím đã nhấp vào số được hiển thị. Để nối thêm một số, chúng ta nối một chuỗi 0Tại thời điểm này, Mary có thể nhấp vào một trong hai phím này
Giả sử Mary nhấn phím thập phân Khi người dùng nhấn phím thập phânKhi Mary nhấn phím thập phân, một số thập phân sẽ xuất hiện trên màn hình. Nếu Mary nhấn bất kỳ số nào sau khi nhấn phím thập phân, thì số đó cũng sẽ được thêm vào màn hình Để tạo hiệu ứng này, chúng ta có thể nối 13 với số được hiển thị 1Tiếp theo, giả sử Mary tiếp tục phép tính của mình bằng cách nhấn một phím toán tử Khi người dùng nhấn phím toán tửNếu Mary nhấn một phím toán tử, thì toán tử đó sẽ được đánh dấu để Mary biết toán tử đó đang hoạt động Để làm như vậy, chúng ta có thể thêm lớp 14 vào phím toán tử 2Khi Mary đã nhấn một phím toán tử, cô ấy sẽ nhấn một phím số khác Khi người dùng nhấn một phím số sau phím toán tửKhi Mary nhấn lại một phím số, màn hình trước đó sẽ được thay thế bằng số mới. Phím điều hành cũng sẽ giải phóng trạng thái nhấn của nó Để giải phóng trạng thái nhấn, chúng ta loại bỏ lớp 14 khỏi tất cả các phím thông qua vòng lặp 16 3Tiếp theo, chúng tôi muốn cập nhật màn hình thành phím đã nhấp. Trước khi làm điều này, chúng ta cần một cách để biết liệu phím trước đó có phải là phím toán tử hay không Một cách để làm điều này là thông qua một thuộc tính tùy chỉnh. Hãy gọi thuộc tính tùy chỉnh này là 17 4Nếu 18 là toán tử, chúng tôi muốn thay thế số được hiển thị bằng số được nhấp 5Tiếp theo, giả sử Mary quyết định hoàn thành phép tính của mình bằng cách nhấn phím bằng Khi người dùng nhấn phím bằngKhi Mary nhấn phím bằng, máy tính sẽ tính kết quả phụ thuộc vào ba giá trị
Sau khi tính toán, kết quả sẽ thay thế giá trị được hiển thị Tại thời điểm này, chúng tôi chỉ biết số thứ hai — tức là số hiện đang hiển thị 6Để có được số đầu tiên, chúng ta cần lưu trữ giá trị được hiển thị của máy tính trước khi xóa sạch. Một cách để lưu số đầu tiên này là thêm nó vào một thuộc tính tùy chỉnh khi nút của nhà điều hành được nhấp vào Để lấy toán tử, chúng ta cũng có thể sử dụng kỹ thuật tương tự 7Khi chúng tôi có ba giá trị chúng tôi cần, chúng tôi có thể thực hiện phép tính. Cuối cùng, chúng tôi muốn mã trông giống như thế này 8Điều đó có nghĩa là chúng ta cần tạo một hàm 09. Nó sẽ có ba tham số. số đầu tiên, toán tử và số thứ hai 9Nếu toán tử là 00, chúng tôi muốn cộng các giá trị lại với nhau. Nếu toán tử là 01, chúng tôi muốn trừ các giá trị, v.v. 0Hãy nhớ rằng 22 và 23 là các chuỗi tại thời điểm này. Nếu bạn cộng các chuỗi lại với nhau, bạn sẽ nối chúng lại ( 24)Vì vậy, trước khi tính toán kết quả, chúng tôi muốn chuyển đổi chuỗi thành số. Chúng ta có thể làm như vậy với hai chức năng 25 và 26
Đối với một máy tính, chúng ta cần một phao 1Đó là con đường hạnh phúc Bạn có thể lấy mã nguồn cho con đường hạnh phúc thông qua liên kết này (cuộn xuống và nhập địa chỉ email của bạn vào hộp và tôi sẽ gửi mã nguồn ngay vào hộp thư của bạn) Các trường hợp cạnhCon đường hạnh phúc là không đủ. Để xây dựng một máy tính mạnh mẽ, bạn cần làm cho máy tính của mình linh hoạt với các kiểu nhập liệu kỳ lạ. Để làm như vậy, bạn phải tưởng tượng một kẻ phá rối cố gắng phá vỡ máy tính của bạn bằng cách nhấn các phím sai thứ tự. Hãy gọi kẻ gây rối này là Tim Tim có thể nhấn các phím này theo thứ tự bất kỳ
Điều gì xảy ra nếu Tim nhấn phím thập phânNếu Tim nhấn phím thập phân khi màn hình đã hiển thị dấu thập phân, sẽ không có gì xảy ra Tại đây, chúng ta có thể kiểm tra xem số được hiển thị có chứa một 13 hay không bằng phương thức 30 30 kiểm tra các chuỗi cho một trận đấu nhất định. Nếu một chuỗi được tìm thấy, nó sẽ trả về 32; Ghi chú. 30 phân biệt chữ hoa chữ thường 2Để kiểm tra chuỗi đã có dấu chấm chưa ta làm như sau 3Tiếp theo, nếu Tim nhấn phím thập phân sau khi nhấn phím toán tử, màn hình sẽ hiển thị 35Ở đây chúng ta cần biết liệu khóa trước đó có phải là toán tử hay không. Chúng ta có thể biết bằng cách kiểm tra thuộc tính tùy chỉnh, 17, chúng ta đã đặt trong bài học trước 17 vẫn chưa hoàn thành. Để xác định chính xác liệu 18 có phải là toán tử hay không, chúng tôi cần cập nhật 18 cho mỗi phím được nhấp 4Khi chúng tôi có đúng 18, chúng tôi có thể sử dụng nó để kiểm tra xem khóa trước đó có phải là toán tử hay không 5Điều gì xảy ra nếu Tim nhấn phím toán tửNếu Tim nhấn phím toán tử trước, phím toán tử sẽ sáng lên. (Chúng tôi đã đề cập đến trường hợp cạnh này, nhưng bằng cách nào? Hãy xem liệu bạn có thể xác định những gì chúng tôi đã làm không) Thứ hai, sẽ không có gì xảy ra nếu Tim nhấn cùng một phím toán tử nhiều lần. (Chúng tôi cũng đã đề cập đến trường hợp cạnh này) Ghi chú. nếu bạn muốn cung cấp UX tốt hơn, bạn có thể hiển thị toán tử được nhấp liên tục với một số thay đổi CSS. Chúng tôi đã không làm điều đó ở đây, nhưng hãy xem liệu bạn có thể tự lập trình điều đó như một thử thách mã hóa bổ sung không Thứ ba, nếu Tim nhấn phím toán tử khác sau khi nhấn phím toán tử đầu tiên, thì phím toán tử đầu tiên sẽ được nhả ra. Sau đó, nhấn phím toán tử thứ hai. (Chúng tôi cũng bảo hiểm cho trường hợp cạnh này - nhưng bằng cách nào?) Thứ tư, nếu Tim chạm vào một số, một toán tử, một số và một toán tử khác, theo thứ tự đó, màn hình sẽ được cập nhật thành một giá trị được tính toán Điều này có nghĩa là chúng ta cần sử dụng hàm 09 khi tồn tại 22, 43 và 23 6Mặc dù chúng tôi có thể tính toán một giá trị khi phím toán tử được bấm lần thứ hai, nhưng chúng tôi cũng đã đưa ra một lỗi tại thời điểm này — các lần bấm bổ sung vào phím toán tử sẽ tính toán một giá trị khi giá trị đó không nên Để ngăn máy tính thực hiện phép tính trong các lần nhấp tiếp theo vào phím toán tử, chúng ta cần kiểm tra xem 18 có phải là toán tử hay không. Nếu đúng như vậy, chúng tôi không thực hiện phép tính 7Thứ năm, sau khi phím toán tử tính toán một số, nếu Tim nhấn vào một số, tiếp theo là một toán tử khác, toán tử sẽ tiếp tục phép tính, như thế này. 46, 47, 48Ngay bây giờ, máy tính của chúng tôi không thể thực hiện các phép tính liên tiếp. Giá trị tính toán thứ hai là sai. Đây là những gì chúng ta có. 49, 50Giá trị thứ hai được tính toán sai, bởi vì chúng tôi đã nhập các giá trị sai vào hàm 09. Hãy xem qua một số hình ảnh để hiểu mã của chúng ta làm gìHiểu chức năng tính toán của chúng tôiĐầu tiên, giả sử người dùng nhấp vào một số, 99. Tại thời điểm này, chưa có gì được đăng ký trong máy tính Thứ hai, giả sử người dùng nhấp vào toán tử trừ. Sau khi họ nhấp vào toán tử trừ, chúng tôi đặt 22 thành 99. Chúng tôi cũng đặt 43 để trừThứ ba, giả sử người dùng nhấp vào giá trị thứ hai — lần này là 1. Tại thời điểm này, số được hiển thị được cập nhật thành 1, nhưng 22, 43 và 23 của chúng tôi vẫn không thay đổiThứ tư, người dùng nhấp lại vào phép trừ. Ngay sau khi họ nhấp vào phép trừ, trước khi tính toán kết quả, chúng tôi đặt 23 làm số được hiển thịThứ năm, chúng tôi thực hiện phép tính với 22 99, trừ 43 và 23 1. Kết quả là 98Khi kết quả được tính toán, chúng tôi đặt hiển thị thành kết quả. Sau đó, chúng tôi đặt 43 để trừ và 22 thành số được hiển thị trước đóVâng, đó là sai lầm khủng khiếp. Nếu chúng tôi muốn tiếp tục tính toán, chúng tôi cần cập nhật 22 với giá trị được tính toán 8Với bản sửa lỗi này, các phép tính liên tiếp được thực hiện bởi các phím toán tử giờ đây sẽ chính xác Điều gì xảy ra nếu Tim nhấn phím bằng?Đầu tiên, sẽ không có gì xảy ra nếu Tim nhấn phím bằng trước bất kỳ phím toán tử nào Chúng tôi biết rằng các phím toán tử chưa được nhấp nếu 22 không được đặt thành một số. Chúng ta có thể sử dụng kiến thức này để ngăn việc tính toán bằng 9Thứ hai, nếu Tim đánh một số, tiếp theo là một toán tử, tiếp theo là một dấu bằng, thì máy tính sẽ tính toán kết quả sao cho
Chúng tôi đã tính đến đầu vào kỳ lạ này. Bạn có thể hiểu tại sao?. ) Thứ ba, nếu Tim nhấn phím bằng sau khi hoàn thành phép tính, phép tính khác sẽ được thực hiện lại. Đây là cách tính toán nên đọc
Thật không may, máy tính của chúng tôi làm hỏng phép tính này. Đây là những gì máy tính của chúng tôi hiển thị
Sửa lỗi tính toánĐầu tiên, giả sử người dùng của chúng tôi nhấp vào 5. Tại thời điểm này, chưa có gì được đăng ký trong máy tính Thứ hai, giả sử người dùng nhấp vào toán tử trừ. Sau khi họ nhấp vào toán tử trừ, chúng tôi đặt 22 thành 5. Chúng tôi cũng đặt 43 để trừThứ ba, người dùng nhấp vào giá trị thứ hai. Giả sử đó là 1. Tại thời điểm này, số được hiển thị được cập nhật thành 1, nhưng 22, 43 và 23 của chúng tôi vẫn không thay đổiThứ tư, người dùng nhấp vào phím bằng. Ngay sau khi họ nhấp vào bằng, nhưng trước khi tính toán, chúng tôi đặt 23 là 86Thứ năm, máy tính tính toán kết quả của 87 và đưa ra kết quả 78. Kết quả được cập nhật lên màn hình. 22 và 43 được chuyển sang phép tính tiếp theo vì chúng tôi không cập nhật chúngThứ sáu, khi người dùng truy cập bằng một lần nữa, chúng tôi đặt 23 thành 86 trước khi tính toánBạn có thể nói những gì sai ở đây Thay vì 23, chúng tôi muốn đặt 22 thành số được hiển thị 0Chúng tôi cũng muốn chuyển 23 trước đó sang phép tính mới. Để 23 tiếp tục tính toán tiếp theo, chúng tôi cần lưu trữ nó trong một thuộc tính tùy chỉnh khác. Hãy gọi thuộc tính tùy chỉnh này là 97 (viết tắt của giá trị sửa đổi) 1Nếu 18 là 09, chúng tôi biết rằng chúng tôi có thể sử dụng 00 như 23. Khi chúng ta biết điều này, chúng ta có thể thực hiện phép tính 2Từ đó ta có phép tính đúng khi bấm liên tiếp phím bằng Quay lại phím bằngThứ tư, nếu Tim nhấn phím thập phân hoặc phím số sau phím máy tính, màn hình sẽ được thay thế bằng 35 hoặc số mới tương ứngỞ đây, thay vì chỉ kiểm tra xem 18 có phải là 43 hay không, chúng ta cũng cần kiểm tra xem đó có phải là 09 không 3Thứ năm, nếu Tim nhấn một phím toán tử ngay sau phím bằng, máy tính sẽ không tính toán Để làm điều này, chúng tôi kiểm tra xem 18 có phải là 09 hay không trước khi thực hiện phép tính bằng các phím toán tử 4Phím xóa có hai cách sử dụng
Khi máy tính ở trạng thái mặc định, 08 sẽ được hiển thịĐầu tiên, nếu Tim nhấn một phím (bất kỳ phím nào trừ phím trống), thì nên đổi 08 thành 09Chúng tôi làm điều này bằng cách kiểm tra xem 7 có phải là 07 không. Nếu nó không phải là 07, chúng tôi sẽ tìm nút rõ ràng và thay đổi nó thành 5 5Thứ hai, nếu Tim chạm vào 09, màn hình sẽ hiển thị 0. Đồng thời, 09 nên được hoàn nguyên về 08 để Tim có thể đặt lại máy tính về trạng thái ban đầu. ** 6Thứ ba, nếu Tim chạm vào 08, hãy đặt lại máy tính về trạng thái ban đầuĐể đặt lại máy tính về trạng thái ban đầu, chúng tôi cần xóa tất cả các thuộc tính tùy chỉnh mà chúng tôi đã đặt 7Thế là xong - dù sao thì đối với phần trường hợp cạnh Bạn có thể lấy mã nguồn cho phần trường hợp cạnh thông qua liên kết này (cuộn xuống và nhập địa chỉ email của bạn vào hộp và tôi sẽ gửi mã nguồn ngay vào hộp thư của bạn) Tại thời điểm này, mã chúng tôi đã tạo cùng nhau khá khó hiểu. Bạn có thể bị lạc nếu cố tự đọc mã. Hãy cấu trúc lại nó để làm cho nó sạch hơn Tái cấu trúc mãKhi tái cấu trúc, bạn sẽ thường bắt đầu với những cải tiến rõ ràng nhất. Trong trường hợp này, hãy bắt đầu với 09Trước khi tiếp tục, hãy đảm bảo bạn biết các tính năng/thực hành JavaScript này. Chúng tôi sẽ sử dụng chúng trong quá trình tái cấu trúc
Với điều đó, hãy bắt đầu Tái cấu trúc chức năng tính toánĐây là những gì chúng ta có cho đến nay 8Bạn đã học được rằng chúng ta nên giảm thiểu việc chỉ định lại càng nhiều càng tốt. Ở đây, chúng ta có thể loại bỏ các phép gán nếu chúng ta trả về kết quả của phép tính trong các câu lệnh 22 và 23 9Vì chúng tôi trả về tất cả các giá trị, chúng tôi có thể sử dụng trả về sớm. Nếu chúng tôi làm như vậy, thì không cần bất kỳ điều kiện 23 nào 0Và vì chúng tôi có một câu lệnh cho mỗi điều kiện 22, chúng tôi có thể xóa dấu ngoặc. (Ghi chú. Tuy nhiên, một số nhà phát triển thề bằng dấu ngoặc nhọn). Đây là mã sẽ trông như thế nào 1Cuối cùng, chúng tôi đã gọi 26 tám lần trong hàm. Chúng ta có thể đơn giản hóa nó bằng cách tạo hai biến để chứa các giá trị float 2Bây giờ chúng ta đã hoàn thành với 09. Bạn không nghĩ rằng nó dễ đọc hơn so với trước đây sao?Tái cấu trúc trình nghe sự kiệnMã chúng tôi tạo cho trình xử lý sự kiện rất lớn. Đây là những gì chúng tôi có tại thời điểm này 3Làm thế nào để bạn bắt đầu tái cấu trúc đoạn mã này? 4Đừng làm điều này. Nó không giúp được gì, bởi vì bạn chỉ đang chia nhỏ các khối mã. Khi bạn làm như vậy, hàm sẽ khó đọc hơn Cách tốt hơn là chia mã thành các hàm thuần túy và không thuần túy. Nếu bạn làm như vậy, bạn sẽ nhận được mã giống như thế này 5Ở đây, 28 là một hàm thuần túy trả về những gì cần hiển thị trên máy tính. 29 là một hàm không thuần túy làm thay đổi giao diện trực quan và các thuộc tính tùy chỉnh của máy tínhTạo createResultStringNhư đã đề cập trước đây, 28 sẽ trả về giá trị cần được hiển thị trên máy tínhBạn có thể lấy các giá trị này thông qua các phần của mã có nội dung 31 6Thay vì 32, chúng tôi muốn trả lại từng giá trị để chúng tôi có thể sử dụng nó sau 7Hãy cùng nhau giải quyết vấn đề này, từng bước một, bắt đầu bằng các phím số Tạo chuỗi kết quả cho các phím sốĐây là mã chúng tôi có cho các phím số 8Bước đầu tiên là sao chép các phần có nội dung 32 thành 28. Khi bạn làm điều này, hãy chắc chắn rằng bạn thay đổi 35 thành 36 9Tiếp theo, chúng ta có thể chuyển đổi câu lệnh 37 thành toán tử bậc ba 0Khi bạn tái cấu trúc, hãy nhớ ghi lại danh sách các biến bạn cần. Chúng tôi sẽ quay lại danh sách sau 1Tạo chuỗi kết quả cho khóa thập phânĐây là mã chúng tôi có cho khóa thập phân 2Như trước đây, chúng tôi muốn chuyển bất kỳ thứ gì thay đổi 38 thành 28 3Vì chúng tôi muốn trả về tất cả các giá trị, chúng tôi có thể chuyển đổi câu lệnh 23 thành trả về sớm 4Một lỗi phổ biến ở đây là quên trả về số đang hiển thị khi cả hai điều kiện đều không khớp. Chúng tôi cần điều này bởi vì chúng tôi sẽ thay thế 38 bằng giá trị được trả về từ 28. Nếu chúng tôi bỏ lỡ nó, 28 sẽ trả lại 44, đó không phải là điều chúng tôi mong muốn 5Như mọi khi, hãy lưu ý các biến được yêu cầu. Tại thời điểm này, các biến cần thiết vẫn giữ nguyên như trước 6Tạo chuỗi kết quả cho các phím toán tửĐây là mã chúng tôi đã viết cho các phím toán tử 7Bạn biết tính kỷ luật từ giờ rồi đấy. chúng tôi muốn chuyển mọi thứ thay đổi 38 thành 28. Đây là những gì cần phải được di chuyển 8Hãy nhớ rằng, 28 cần trả về giá trị được hiển thị trên máy tính. Nếu điều kiện 22 không khớp, chúng tôi vẫn muốn trả về số được hiển thị 9Sau đó, chúng ta có thể cấu trúc lại câu lệnh 37 thành một toán tử bậc ba 0Nếu quan sát kỹ, bạn sẽ nhận ra rằng không cần lưu trữ biến 23. Chúng ta có thể sử dụng trực tiếp 86 trong hàm 09 1Cuối cùng, lưu ý các biến và thuộc tính cần thiết. Lần này, chúng ta cần 53 và 54 2Tạo chuỗi kết quả cho khóa rõ ràngChúng tôi đã viết đoạn mã sau để xử lý khóa 07 3Như trên, muốn chuyển mọi thứ thay đổi 38 thành 28 4Tạo chuỗi kết quả cho khóa bằngĐây là mã chúng tôi đã viết cho khóa bằng 5Như trên, chúng tôi muốn sao chép mọi thứ thay đổi 38 thành 28. Đây là những gì cần được sao chép 6Khi sao chép mã vào 28, hãy đảm bảo rằng bạn trả về các giá trị cho mọi trường hợp có thể xảy ra 7Tiếp theo, chúng tôi muốn giảm bớt việc chỉ định lại. Chúng ta có thể làm như vậy bằng cách chuyển các giá trị chính xác vào 09 thông qua một toán tử bậc ba 8Bạn có thể đơn giản hóa hơn nữa đoạn mã trên bằng một toán tử bậc ba khác nếu bạn cảm thấy thoải mái với nó 9Tại thời điểm này, chúng tôi muốn lưu ý lại các thuộc tính và biến cần thiết 0Truyền vào các biến cần thiếtChúng tôi cần bảy thuộc tính/biến trong 28
Chúng tôi có thể nhận được 63 và 66 từ 72. Chúng tôi cũng có thể nhận được 22, 97, 43 và 18 từ 77Điều đó có nghĩa là hàm 28 cần ba biến— 72, 86 và 77. Vì 77 đại diện cho trạng thái của máy tính, hãy sử dụng một biến có tên là 83 để thay thế 1Vui lòng hủy cấu trúc các biến nếu bạn muốn 2Tính nhất quán trong các câu lệnh ifTrong 28, chúng tôi đã sử dụng các điều kiện sau để kiểm tra loại phím được bấm 3Chúng không nhất quán nên khó đọc. Nếu có thể, chúng tôi muốn làm cho chúng nhất quán để chúng tôi có thể viết một cái gì đó như thế này 4Để làm như vậy, chúng ta có thể tạo một hàm có tên là 85. Hàm này sẽ trả về loại khóa đã được nhấp 5Đây là cách bạn sử dụng chức năng 6Chúng tôi đã hoàn thành với 28. Hãy chuyển sang 29Thực hiện cập nhậtCalculatorState 29 là chức năng thay đổi giao diện trực quan và các thuộc tính tùy chỉnh của máy tínhNhư với 28, chúng ta cần kiểm tra loại phím được bấm. Ở đây, chúng ta có thể tái sử dụng 85 7Nếu bạn nhìn vào mã còn sót lại, bạn có thể nhận thấy chúng tôi thay đổi _______5_______17 cho mọi loại khóa. Đây là mã trông như thế nào 8Điều này là dư thừa vì chúng ta đã biết loại khóa có 85. Chúng ta có thể cấu trúc lại ở trên để 9Tạo __6_______29 cho các phím điều hànhVề mặt trực quan, chúng ta cần đảm bảo rằng tất cả các phím giải phóng trạng thái chán nản của chúng. Tại đây, chúng tôi có thể sao chép và dán mã chúng tôi có trước đó 0Đây là những gì còn lại từ những gì chúng tôi đã viết cho các phím điều hành, sau khi di chuyển các phần liên quan đến 38 thành 28 1Bạn có thể nhận thấy rằng chúng ta có thể rút ngắn mã bằng toán tử bậc ba 2Như trước đây, hãy lưu ý các biến và thuộc tính bạn cần. Ở đây, chúng ta cần 96 và 86 3Tạo |