{"id":25198032,"url":"https://github.com/danedens/javascript_interview_questions","last_synced_at":"2025-04-04T17:17:26.660Z","repository":{"id":270893324,"uuid":"911686039","full_name":"DanEdens/javascript_interview_questions","owner":"DanEdens","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-03T20:20:17.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T02:41:23.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanEdens.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-03T15:52:26.000Z","updated_at":"2025-01-03T20:20:21.000Z","dependencies_parsed_at":"2025-01-03T21:34:35.015Z","dependency_job_id":null,"html_url":"https://github.com/DanEdens/javascript_interview_questions","commit_stats":null,"previous_names":["danedens/javascript_interview_questions"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanEdens%2Fjavascript_interview_questions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanEdens%2Fjavascript_interview_questions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanEdens%2Fjavascript_interview_questions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanEdens%2Fjavascript_interview_questions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanEdens","download_url":"https://codeload.github.com/DanEdens/javascript_interview_questions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217219,"owners_count":20903009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-10T02:40:34.332Z","updated_at":"2025-04-04T17:17:26.642Z","avatar_url":"https://github.com/DanEdens.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaScript Interview Solutions\n\nA collection of common JavaScript interview coding challenges and their implementations. This repository includes solutions for various JavaScript concepts, utilities, and design patterns.\n\n## 🚀 Features\n\n### Promise Implementations\n- Custom Promise.all, Promise.race, Promise.any, Promise.allSettled\n- Promise sequencing and parallel execution\n- Cancelable promises\n- Promise retry mechanism\n\n### Functional Programming\n- Chain calculator\n- Pipe and compose functions\n- Currying implementation\n- Array polyfills\n\n### Performance Utilities\n- Debouncing (basic and advanced with leading/trailing options)\n- Throttling\n- LRU Cache for typeahead search\n- MapLimit functionality\n\n### Event Handling\n- Custom Event Emitter\n- Observable Array implementation\n- DOM element finder\n\n### Data Structure Operations\n- Array flattening\n- Deep object cloning\n- Document comparison\n- Custom sorting algorithms (QuickSort, MergeSort)\n\n### Object-Oriented Programming\n- Prototype inheritance examples\n- Custom implementations of call, apply, and bind\n\n## 🔧 Usage\n\n### Calculator Example\njavascript\nconst calc = new Calculator(10);\nconsole.log(calc.add(5).multiply(2).subtract(8).get()); // 22\njavascript\nconst calc = new Calculator(10);\nconsole.log(calc.add(5).multiply(2).subtract(8).get()); // 22javascript\nconst calc = new Calculator(10);\nconsole.log(calc.add(5).multiply(2).subtract(8).get()); // 22\n\n### Debouncing Example\n```javascript\nconst debouncedFn = debounce(() =\u003e console.log('Executed'), 1000);\ndebouncedFn(); // Will execute after 1 second of inactivity\n```\n\n## 📚 Documentation\n\nThe codebase includes detailed comments explaining each implementation. Additionally, there's a comprehensive explanation of the React DOM rendering process at the bottom of the main.js file.\n\n## 🧪 Testing\n\nTo test the implementations:\n\n1. Clone the repository\n2. Open the code in your preferred JavaScript environment\n3. Run the test cases provided in the comments\n4. Use the browser console or Node.js REPL to experiment with the functions\n\n## 🤝 Contributing\n\nFeel free to submit issues and enhancement requests!\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanedens%2Fjavascript_interview_questions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanedens%2Fjavascript_interview_questions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanedens%2Fjavascript_interview_questions/lists"}