Câu hỏi phỏng vấn CoderPad JavaScript

Các câu hỏi thường gặp về MongoDB của các thành viên chuyên gia có kinh nghiệm về MongoDB Những câu hỏi và câu trả lời này sẽ giúp bạn củng cố các kỹ năng kỹ thuật của mình, chuẩn bị cho bài kiểm tra công việc mới và nhanh chóng sửa đổi các khái niệm

  • Câu hỏi phỏng vấn MongoDB từ JavaTPointcom

  • Các câu hỏi phỏng vấn MongoDB đã được thiết kế đặc biệt để giúp bạn làm quen với bản chất của các câu hỏi mà bạn có thể gặp phải trong cuộc phỏng vấn về chủ đề MongoDB

    Điều này nghe có vẻ tầm thường và trên thực tế, nó không quan trọng với ECMAscript 6 giới thiệu một hàm

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    0 mới cho mục đích chính xác này. Tuy nhiên, trước ECMAScript 6, điều này phức tạp hơn một chút, vì không cung cấp phương thức tương đương với phương thức
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    0

    Vấn đề là, trong đặc tả ECMAScript, các số nguyên chỉ tồn tại về mặt khái niệm; . e. , các giá trị số luôn được lưu trữ dưới dạng giá trị dấu phẩy động

    Với ý nghĩ đó, giải pháp tiền ECMAScript-6 đơn giản và rõ ràng nhất [cũng đủ mạnh để trả về

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    2 ngay cả khi một giá trị không phải là số như chuỗi hoặc
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    0 được truyền cho hàm] sẽ là cách sử dụng sau đây của

    function isInteger[x] { return [x ^ 0] === x; } 
    

    Giải pháp sau đây cũng sẽ hoạt động, mặc dù không thanh lịch như giải pháp trên

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    

    Hàm sau [hoặc với

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    1 hoặc
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    2 thay cho
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    3] cũng có vẻ hữu ích, nhưng kết quả không hoàn toàn giống với hai hàm trên

    function isInteger[x] { return Math.round[x] === x; }
    

    Sự khác biệt là, các giải pháp dựa trên

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    4 này trả về
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    5 cho
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    6 và
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    7, trong khi các giải pháp khác [và đặc biệt là
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    0 của ES6] trả về
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    2

    Một giải pháp không chính xác khá phổ biến khác là như sau

    function isInteger[x] { return [x ^ 0] === x; } 
    
    1

    Mặc dù cách tiếp cận dựa trên

    function isInteger[x] { return Math.round[x] === x; }
    
    0 này sẽ hoạt động tốt với nhiều giá trị của
    function isInteger[x] { return Math.round[x] === x; }
    
    1, nhưng khi
    function isInteger[x] { return Math.round[x] === x; }
    
    1 trở nên khá lớn, nó sẽ không hoạt động bình thường. Vấn đề là
    function isInteger[x] { return Math.round[x] === x; }
    
    3 buộc tham số đầu tiên của nó thành một chuỗi trước khi phân tích các chữ số. Do đó, khi số trở nên đủ lớn, biểu diễn chuỗi của nó sẽ được trình bày ở dạng hàm mũ [e. g. ,
    function isInteger[x] { return Math.round[x] === x; }
    
    4]. Theo đó, sau đó,
    function isInteger[x] { return Math.round[x] === x; }
    
    3 sẽ cố gắng phân tích cú pháp
    function isInteger[x] { return Math.round[x] === x; }
    
    4, nhưng sẽ ngừng phân tích cú pháp khi đến ký tự
    function isInteger[x] { return Math.round[x] === x; }
    
    7 và do đó sẽ trả về giá trị là
    function isInteger[x] { return Math.round[x] === x; }
    
    8. Quan sát

    JavaScript là ngôn ngữ chính thức của tất cả các trình duyệt web hiện đại. Như vậy, các câu hỏi JavaScript xuất hiện trong tất cả các loại phỏng vấn nhà phát triển

    Bài viết này không nói về các thư viện JavaScript mới nhất, các phương pháp phát triển phổ biến hoặc bất kỳ. Thay vào đó, đó là về 3 điều thường xuất hiện trong các cuộc phỏng vấn khi thảo luận về JavaScript. Bản thân tôi đã được hỏi những câu hỏi này và bạn bè của tôi đã nói với tôi rằng họ cũng đã được hỏi như vậy

    Tất nhiên đây không phải là 3 điều duy nhất bạn nên học trước khi phỏng vấn JavaScript — có một số bạn có thể chuẩn bị tốt hơn cho cuộc phỏng vấn sắp tới — nhưng dưới đây là 3 câu hỏi mà người phỏng vấn có thể hỏi để đánh giá mức độ bạn biết và hiểu về JavaScript

    Vậy hãy bắt đầu. Lưu ý rằng chúng tôi sẽ sử dụng vanilla JavaScript trong các ví dụ bên dưới, vì người phỏng vấn của bạn thường muốn xem bạn hiểu JavaScript và DOM đến mức nào mà không cần sự trợ giúp của các thư viện như jQuery

    Câu hỏi 1. ủy quyền sự kiện

    Khi xây dựng một ứng dụng, đôi khi bạn cần đính kèm trình xử lý sự kiện vào các nút, văn bản hoặc hình ảnh trên trang để thực hiện một số hành động khi người dùng tương tác với phần tử đó.

    Nếu chúng tôi lấy một danh sách việc cần làm đơn giản làm ví dụ, người phỏng vấn có thể cho bạn biết rằng họ muốn một hành động xảy ra khi người dùng nhấp vào một trong các mục trong danh sách. Và họ muốn bạn triển khai chức năng này trong JavaScript với giả sử mã HTML sau

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    1

    Bạn có thể muốn làm điều gì đó như sau để đính kèm trình xử lý sự kiện vào các phần tử

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    2

    Mặc dù điều này hoạt động về mặt kỹ thuật, nhưng vấn đề là bạn đang đính kèm một trình xử lý sự kiện vào từng mục riêng lẻ. Điều này tốt cho 4 yếu tố, nhưng nếu ai đó thêm 10.000 mục [họ có thể có rất nhiều việc phải làm] vào danh sách việc cần làm của họ thì sao? . Điều này không hiệu quả lắm

    Trong một cuộc phỏng vấn, tốt nhất trước tiên bạn nên hỏi người phỏng vấn số lượng phần tử tối đa mà người dùng có thể nhập là bao nhiêu. Ví dụ: nếu nó không bao giờ có thể lớn hơn 10, thì đoạn mã trên sẽ hoạt động tốt. Nhưng nếu không có giới hạn về số lượng mục mà người dùng có thể nhập, thì bạn sẽ muốn sử dụng một giải pháp hiệu quả hơn

    Nếu ứng dụng của bạn có thể kết thúc với hàng trăm trình xử lý sự kiện, thì giải pháp hiệu quả hơn là thực sự đính kèm một trình xử lý sự kiện vào toàn bộ vùng chứa và sau đó có thể truy cập từng mục khi nó thực sự được nhấp vào. Điều này được gọi là ủy quyền sự kiện và nó hiệu quả hơn nhiều so với việc đính kèm các trình xử lý sự kiện riêng biệt

    Đây là mã cho ủy quyền sự kiện

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    3

    Câu hỏi 2. Sử dụng một bao đóng trong một vòng lặp

    Câu kết đôi khi được đưa ra trong một cuộc phỏng vấn để người phỏng vấn có thể đánh giá mức độ quen thuộc của bạn với ngôn ngữ và liệu bạn có biết khi nào nên thực hiện câu kết

    Về cơ bản, một bao đóng là khi một biến nằm ngoài phạm vi của nó. Bao đóng có thể được sử dụng cho những thứ như và tạo. Một câu hỏi phỏng vấn phổ biến liên quan đến việc sử dụng bao đóng là như thế này

    Viết hàm lặp qua danh sách các số nguyên và in chỉ số của từng phần tử sau 3 giây trì hoãn

    Một triển khai phổ biến [không chính xác] mà tôi đã thấy cho vấn đề này trông giống như thế này

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    4

    Nếu bạn chạy chương trình này, bạn sẽ thấy rằng bạn thực sự nhận được 4 bản in ra mỗi lần thay vì 0, 1, 2, 3 như mong đợi sau 3 giây trì hoãn

    Để xác định chính xác lý do tại sao điều này xảy ra, sẽ rất hữu ích nếu bạn hiểu lý do tại sao điều này xảy ra trong JavaScript, đây chính xác là điều mà người phỏng vấn đang cố gắng kiểm tra

    Lý do cho điều này là vì hàm

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    5 tạo ra một hàm [bao đóng] có quyền truy cập vào phạm vi bên ngoài của nó, đó là vòng lặp chứa chỉ mục
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    6. Sau 3 giây trôi qua, hàm được thực thi và nó in ra giá trị của
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    6, giá trị này ở cuối vòng lặp là 4 vì nó quay vòng qua 0, 1, 2, 3, 4 và cuối cùng vòng lặp dừng ở 4

    Thực tế, có một số cách để viết chính xác hàm cho vấn đề này. Dưới đây là hai trong số họ

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    5
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    6

    Câu hỏi số 3. ra mắt

    Có một số sự kiện trình duyệt có thể kích hoạt nhiều lần trong một khoảng thời gian ngắn rất nhanh, chẳng hạn như thay đổi kích thước cửa sổ hoặc cuộn trang xuống. Ví dụ: nếu bạn đính kèm trình lắng nghe sự kiện vào sự kiện cuộn cửa sổ và người dùng liên tục cuộn xuống trang rất nhanh, thì sự kiện của bạn có thể kích hoạt hàng nghìn lần trong khoảng thời gian 3 giây. Điều này có thể gây ra một số vấn đề hiệu suất nghiêm trọng

    Nếu bạn đang thảo luận về việc xây dựng một ứng dụng trong một cuộc phỏng vấn và các sự kiện như cuộn, thay đổi kích thước cửa sổ hoặc nhấn phím xuất hiện, hãy đảm bảo đề cập đến việc gỡ lỗi và/hoặc điều chỉnh như một cách để cải thiện tốc độ và hiệu suất của trang. Một ví dụ thực tế được lấy từ bài đăng của khách này trên thủ thuật css

    Năm 2011, một vấn đề xuất hiện trên trang web Twitter. khi bạn đang cuộn xuống nguồn cấp dữ liệu Twitter của mình, nó trở nên chậm và không phản hồi. John Resig đã xuất bản một bài đăng trên blog về vấn đề giải thích ý tưởng tồi tệ như thế nào khi gắn trực tiếp các chức năng đắt tiền vào sự kiện
    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    21

    Gỡ lỗi là một cách để giải quyết vấn đề này bằng cách giới hạn thời gian cần trôi qua cho đến khi một chức năng được gọi lại. Do đó, việc triển khai gỡ lỗi chính xác sẽ nhóm một số lời gọi hàm thành một và chỉ thực hiện nó một lần sau một thời gian đã trôi qua. Đây là một triển khai bằng JavaScript đơn giản sử dụng các chủ đề như phạm vi, bao đóng, điều này và các sự kiện định thời

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    8

    Chức năng này — khi bao quanh một sự kiện — sẽ chỉ thực thi sau một khoảng thời gian nhất định đã trôi qua

    Bạn sẽ sử dụng chức năng này như vậy

    function isInteger[x] { return [typeof x === 'number'] && [x % 1 === 0]; }
    
    9

    Điều tiết là một kỹ thuật khác tương tự như gỡ lỗi, ngoại trừ việc thay vì đợi một khoảng thời gian trôi qua trước khi gọi hàm, điều tiết chỉ phân bổ các lệnh gọi hàm trong một khoảng thời gian dài hơn. Vì vậy, nếu một sự kiện xảy ra 10 lần trong vòng 100 mili giây, thì việc điều chỉnh có thể trải ra từng lệnh gọi hàm để được thực thi 2 giây một lần thay vì kích hoạt tất cả trong vòng 100 mili giây

    Để biết thêm thông tin về gỡ lỗi và điều tiết, các bài viết và hướng dẫn sau đây có thể hữu ích

    • Sự khác biệt giữa điều chỉnh và gỡ lỗi
    • Ví dụ về điều chỉnh và gỡ lỗi
    • Bài đăng trên blog của Remy Sharp về các cuộc gọi chức năng Throttling

    Nếu bạn thích đọc bài viết này, thì bạn có thể thích đọc các hướng dẫn về JavaScript và giải quyết một số thách thức về mã hóa JavaScript mà tôi lưu trữ trên Coderbyte. Tôi muốn nghe những gì bạn nghĩ

    QUẢNG CÁO

    QUẢNG CÁO

    QUẢNG CÁO

    QUẢNG CÁO

    QUẢNG CÁO

    QUẢNG CÁO

    QUẢNG CÁO

    QUẢNG CÁO

    Daniel Borowski

    Giám đốc điều hành & Người sáng lập tại Coderbyte

    Nếu bài viết này hữu ích, hãy tweet nó

    Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

    JavaScript có được phép trong các cuộc phỏng vấn mã hóa không?

    Câu trả lời là có. Hầu hết các công ty cho phép bạn viết mã bằng bất kỳ ngôn ngữ nào bạn muốn - ngoại lệ duy nhất tôi biết là Google, nơi họ chỉ cho phép ứng viên chọn từ Java, C++, JavaScript .

    Các câu hỏi mã hóa JavaScript được hỏi trong cuộc phỏng vấn là gì?

    Câu hỏi và câu trả lời phỏng vấn JavaScript dành cho người mới bắt đầu .
    Q1. Sự khác biệt giữa Java & JavaScript là gì?
    quý 2. JavaScript là gì?
    Q3. Các loại dữ liệu được hỗ trợ bởi JavaScript là gì?
    Q4. Các tính năng của JavaScript là gì?
    Q5. JavaScript có phải là ngôn ngữ phân biệt chữ hoa chữ thường không?
    Q6. .
    Q7. .

    Làm thế nào để chuẩn bị cho cuộc phỏng vấn mã hóa JavaScript?

    Cách chuẩn bị cho cuộc phỏng vấn JavaScript .
    Bước 1. Biết những gì bạn cần học. Bạn đã biết mình sẽ sử dụng ngôn ngữ lập trình nào, vì vậy bây giờ bạn cần nghiên cứu những khía cạnh nào của ngôn ngữ đó sẽ được kiểm tra. .
    Bước 2. Lên kế hoạch. .
    Bước 3. Đừng quên phần phỏng vấn ứng xử

    Phỏng vấn CoderPad hoạt động như thế nào?

    Tạo bảng phỏng vấn . CoderPad lưu bản ghi mọi thứ để nhóm của bạn xem lại và chia sẻ sau đó. Các cuộc phỏng vấn trực tiếp có sẵn trên tất cả các gói CoderPad. A pad is a session where the candidate and interviewer write and run code – either during a live collaborative interview or a take-home project. CoderPad saves a record of everything for your team to review and share afterwards. Live interviews are available on all CoderPad plans.

  • Chủ Đề