diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b63c871e3..bf9cd6c1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,6 +33,7 @@ In order to create a new snippet, you should follow the steps below: - Snippet titles must be short enough and correspond to the type of the snippet. Titles for each type must follow the format of previous snippets (e.g. `The trickiest thing about X` for a story, `X things that are awesome` for a list, `How do I do X in Y?` for a question). - Snippet types must be one of the following: `story`, `list`, `tip`, `cheatsheet` or `question`. - Snippet tags must be comma-separated. You are allowed to specify a single language tag (e.g. `react` or `javascript`), preferably as the first tag. +- Snippet expertise must be specified (`beginner`, `intermediate` or `advanced`). - Snippets must have their `firstSeen` dates formatted using [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - Snippet authors must be added in JSON format as seen in `blog_data/blog_authors.json`. - Snippet covers must be added inside the `blog_images` directory and have the exact same name as the snippet filename. Snippet covers must be Unsplash images of appropriate theme and content and their links must be provided as part of the PR, so that they can be added to the appropriate collection. diff --git a/blog_posts/10-vs-code-extensions-for-js-developers.md b/blog_posts/10-vs-code-extensions-for-js-developers.md index ee2506900..1e0faba0e 100644 --- a/blog_posts/10-vs-code-extensions-for-js-developers.md +++ b/blog_posts/10-vs-code-extensions-for-js-developers.md @@ -2,6 +2,7 @@ title: 10 must-have VS Code extensions for JavaScript developers type: story tags: devtools,vscode +expertise: intermediate author: chalarangelo cover: blog_images/computer-screens.jpg excerpt: VS Code is steadily gaining popularity among developers. Here are 10 essential extensions for JavaScript developers that aim to increase your productivity. diff --git a/blog_posts/25-css-gradients.md b/blog_posts/25-css-gradients.md index c4ba41afa..a49aa9fdb 100644 --- a/blog_posts/25-css-gradients.md +++ b/blog_posts/25-css-gradients.md @@ -2,6 +2,7 @@ title: 25 CSS gradients for your next project type: cheatsheet tags: css,visual +expertise: intermediate author: chalarangelo cover: blog_images/colors-mural.jpg excerpt: We hand picked 25 of our favorite CSS gradients from uiGradients for your next design. Get them now! diff --git a/blog_posts/4-javascript-array-methods.md b/blog_posts/4-javascript-array-methods.md index 8ac1e79c8..2372a16e7 100644 --- a/blog_posts/4-javascript-array-methods.md +++ b/blog_posts/4-javascript-array-methods.md @@ -2,6 +2,7 @@ title: 4 JavaScript Array methods you must know type: story tags: javascript,array,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/arrays.jpg excerpt: JavaScript arrays have a very robust API offering a plethora of amazing tools. Learn the 4 must-know JavaScript array methods in this quick guide. diff --git a/blog_posts/4-seo-tips-for-developers.md b/blog_posts/4-seo-tips-for-developers.md index 9293f9d2a..9187828fd 100644 --- a/blog_posts/4-seo-tips-for-developers.md +++ b/blog_posts/4-seo-tips-for-developers.md @@ -2,6 +2,7 @@ title: 4 SEO tips for developers type: story tags: seo,webdev +expertise: intermediate author: chalarangelo cover: blog_images/sunrise-over-city.jpg excerpt: As time goes by, SEO is becoming increasingly relevant, but most web developers seem to have little experience with it. Here are 4 actionable SEO tips you can implement today. diff --git a/blog_posts/5-tips-for-better-pull-requests.md b/blog_posts/5-tips-for-better-pull-requests.md index 0f376fd7e..59a614ebf 100644 --- a/blog_posts/5-tips-for-better-pull-requests.md +++ b/blog_posts/5-tips-for-better-pull-requests.md @@ -2,6 +2,7 @@ title: 5 tips for better Pull Requests type: story tags: git,github,programming,webdev +expertise: intermediate author: chalarangelo cover: blog_images/keyboard-tea.jpg excerpt: Writing good code is only part of the job. Here are 5 tips to improve your pull requests and help people review them. diff --git a/blog_posts/6-javascript-regexp-tricks.md b/blog_posts/6-javascript-regexp-tricks.md index c6f76f942..178b6d68a 100644 --- a/blog_posts/6-javascript-regexp-tricks.md +++ b/blog_posts/6-javascript-regexp-tricks.md @@ -2,6 +2,7 @@ title: 6 JavaScript Regular Expression features you can use today type: story tags: javascript,string,regexp +expertise: intermediate author: chalarangelo cover: blog_images/taking-photos.jpg excerpt: Regular expressions, while very powerful, are notoriously hard to master. Start using them in your JavaScript code by understanding these 6 features. diff --git a/blog_posts/6-python-f-strings-tips.md b/blog_posts/6-python-f-strings-tips.md index 9f3b68b93..f3d77b3a0 100644 --- a/blog_posts/6-python-f-strings-tips.md +++ b/blog_posts/6-python-f-strings-tips.md @@ -2,6 +2,7 @@ title: 6 Python f-strings tips and tricks type: story tags: python,string +expertise: intermediate author: chalarangelo cover: blog_images/sea-view.jpg excerpt: Python's f-strings can do a lot more than you might expect. Learn a few useful tips and tricks in this quick guide. diff --git a/blog_posts/7-chrome-extensions-for-web-developers.md b/blog_posts/7-chrome-extensions-for-web-developers.md index 93d2f3f40..f6bdc46fd 100644 --- a/blog_posts/7-chrome-extensions-for-web-developers.md +++ b/blog_posts/7-chrome-extensions-for-web-developers.md @@ -2,6 +2,7 @@ title: 7 essential Chrome extensions for web developers type: story tags: devtools,webdev +expertise: intermediate author: chalarangelo cover: blog_images/computer-screens.jpg excerpt: Google Chrome's developer tools are nothing short of amazing. Here are 7 must-have extensions you can add to increase your productivity even further. diff --git a/blog_posts/8-tips-for-accessible-websites.md b/blog_posts/8-tips-for-accessible-websites.md index bde98eec7..0b49b065b 100644 --- a/blog_posts/8-tips-for-accessible-websites.md +++ b/blog_posts/8-tips-for-accessible-websites.md @@ -2,6 +2,7 @@ title: 8 tips for accessible websites type: story tags: javascript,accessibility,webdev +expertise: intermediate author: chalarangelo cover: blog_images/accessibility.jpg excerpt: Accessibility (a11y) can improve your website and attract new users. Learn how to get started with these 8 quick tips. diff --git a/blog_posts/8-tips-for-remote-work.md b/blog_posts/8-tips-for-remote-work.md index a04d915a4..6b32e545e 100644 --- a/blog_posts/8-tips-for-remote-work.md +++ b/blog_posts/8-tips-for-remote-work.md @@ -2,6 +2,7 @@ title: 8 tips for working from home type: story tags: career,programming,jobs,webdev +expertise: intermediate author: chalarangelo cover: blog_images/kettle-laptop.jpg excerpt: Working from home seems like a great alternative to going to the office, but there are challenges that come with it that you need to overcome... diff --git a/blog_posts/async-javascript-cheatsheet.md b/blog_posts/async-javascript-cheatsheet.md index df4aa8c60..fa35ff2e7 100644 --- a/blog_posts/async-javascript-cheatsheet.md +++ b/blog_posts/async-javascript-cheatsheet.md @@ -2,6 +2,7 @@ title: Asynchronous JavaScript Cheat Sheet type: cheatsheet tags: javascript,function,promise +expertise: intermediate author: chalarangelo cover: blog_images/green-plant.jpg excerpt: Learn everything you need to know about promises and asynchronous JavaScript with this handy cheatsheet. diff --git a/blog_posts/benefits-of-writing.md b/blog_posts/benefits-of-writing.md index d8a7e32ca..d368bfcad 100644 --- a/blog_posts/benefits-of-writing.md +++ b/blog_posts/benefits-of-writing.md @@ -2,6 +2,7 @@ title: The benefits of writing type: story tags: career,webdev,programming,jobs +expertise: intermediate author: chalarangelo cover: blog_images/laptop-view.jpg excerpt: Writing about a topic can often sound boring or worthless. But there are significant benefits to doing it from time to time. diff --git a/blog_posts/breaking-react.md b/blog_posts/breaking-react.md index d9b6971c0..dd0e12acd 100644 --- a/blog_posts/breaking-react.md +++ b/blog_posts/breaking-react.md @@ -2,6 +2,7 @@ title: Breaking React - a common pattern to avoid type: story tags: react,debugging +expertise: intermediate author: chalarangelo cover: blog_images/broken-screen.jpg excerpt: As powerful as React is, it is also quite fragile at places. Did you know that just a few lines are more than enough to break your entire React application? diff --git a/blog_posts/code-anatomy-chaining-reduce-for-loop.md b/blog_posts/code-anatomy-chaining-reduce-for-loop.md index 9470716e0..7645d6c3e 100644 --- a/blog_posts/code-anatomy-chaining-reduce-for-loop.md +++ b/blog_posts/code-anatomy-chaining-reduce-for-loop.md @@ -2,6 +2,7 @@ title: Code Anatomy - For loops, array reduce and method chaining type: story tags: javascript,array,object,iterator +expertise: intermediate author: chalarangelo cover: blog_images/case-study.jpg excerpt: There are many ways to iterate and transform array data in JavaScript. Learn how each one works and where you should use them. diff --git a/blog_posts/code-anatomy-optimizing-recursion.md b/blog_posts/code-anatomy-optimizing-recursion.md index dc7a1357f..6a8bfbc77 100644 --- a/blog_posts/code-anatomy-optimizing-recursion.md +++ b/blog_posts/code-anatomy-optimizing-recursion.md @@ -2,6 +2,7 @@ title: Code Anatomy - Optimizing recursive functions type: story tags: javascript,recursion,performance +expertise: intermediate author: chalarangelo cover: blog_images/case-study.jpg excerpt: Recursive code has a tendency of being inefficient and can leave a lot of space for optimization. Learn a couple of tricks we use to speed up our recursive functions. diff --git a/blog_posts/code-anatomy-performant-python.md b/blog_posts/code-anatomy-performant-python.md index 3fc5322a0..a85d4aec1 100644 --- a/blog_posts/code-anatomy-performant-python.md +++ b/blog_posts/code-anatomy-performant-python.md @@ -2,6 +2,7 @@ title: Code Anatomy - Writing high performance Python code type: story tags: python,list,performance +expertise: intermediate author: maciv cover: blog_images/walking-on-top.jpg excerpt: Writing short, efficient Python code is not always straightforward. Read how we optimize our list snippets to increase performance using a couple of simple tricks. diff --git a/blog_posts/console-log-cheatsheet.md b/blog_posts/console-log-cheatsheet.md index 6243c5fc7..d2c4e06dc 100644 --- a/blog_posts/console-log-cheatsheet.md +++ b/blog_posts/console-log-cheatsheet.md @@ -2,6 +2,7 @@ title: JavaScript console.log() tips & tricks type: story tags: javascript,browser,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/terminal.jpg excerpt: Level up your JavaScript logging with these `console.log()` tips and tricks. diff --git a/blog_posts/cookies-local-storage-session.md b/blog_posts/cookies-local-storage-session.md index 33bd4439e..348853eab 100644 --- a/blog_posts/cookies-local-storage-session.md +++ b/blog_posts/cookies-local-storage-session.md @@ -2,6 +2,7 @@ title: What is the difference between cookies, local storage, and session storage? type: question tags: javascript,browser,webdev +expertise: intermediate author: chalarangelo cover: blog_images/three-vases.jpg excerpt: Learn the difference between cookies, local storage and session storage and start using the correct option for your needs. diff --git a/blog_posts/copy-text-to-clipboard-with-javascript.md b/blog_posts/copy-text-to-clipboard-with-javascript.md index b08c256f3..04113ee94 100644 --- a/blog_posts/copy-text-to-clipboard-with-javascript.md +++ b/blog_posts/copy-text-to-clipboard-with-javascript.md @@ -2,6 +2,7 @@ title: How can I copy text to clipboard with JavaScript? type: question tags: javascript,browser +expertise: intermediate author: chalarangelo cover: blog_images/typing.jpg excerpt: Learn how to programmatically copy text to clipboard with a few lines of JavaScript and level up your web development skills. diff --git a/blog_posts/css-centering.md b/blog_posts/css-centering.md index 432c1d33a..4e5bf2eaa 100644 --- a/blog_posts/css-centering.md +++ b/blog_posts/css-centering.md @@ -2,6 +2,7 @@ title: 4 ways to center content with CSS type: story tags: css,layout +expertise: intermediate author: chalarangelo cover: blog_images/mountain-lake.jpg excerpt: Centering content with CSS might often feel tricky. Here are 4 easy tricks you can use in your code today. diff --git a/blog_posts/css-easing-variables.md b/blog_posts/css-easing-variables.md index 441a0ee8d..5c1175847 100644 --- a/blog_posts/css-easing-variables.md +++ b/blog_posts/css-easing-variables.md @@ -2,6 +2,7 @@ title: "Tip: CSS easing variables" type: tip tags: css,animation +expertise: intermediate author: chalarangelo cover: blog_images/curve.jpg excerpt: Learn how to use the `cubic-bezier()` class of easing functions and create beautiful animations that stand out. diff --git a/blog_posts/css-pseudo-classes.md b/blog_posts/css-pseudo-classes.md index ac157249f..f46ac9389 100644 --- a/blog_posts/css-pseudo-classes.md +++ b/blog_posts/css-pseudo-classes.md @@ -2,6 +2,7 @@ title: What are CSS pseudo-classes? type: question tags: css,webdev +expertise: intermediate author: chalarangelo cover: blog_images/orange-flower.jpg excerpt: Learn how to use CSS pseudo-classes to style an element based on changes to its state. diff --git a/blog_posts/css-select-any-link.md b/blog_posts/css-select-any-link.md index 221016a8e..5f5d497b6 100644 --- a/blog_posts/css-select-any-link.md +++ b/blog_posts/css-select-any-link.md @@ -2,6 +2,7 @@ title: "Tip: Select any link with CSS" type: tip tags: css,visual,interactivity +expertise: intermediate author: chalarangelo cover: blog_images/round-leaves.jpg excerpt: You can use a CSS pseudo-class selector to style all links in a page, without worrying if they have been visited or not. diff --git a/blog_posts/css-units-cheatsheet.md b/blog_posts/css-units-cheatsheet.md index c6ffc06c4..5c7a9718d 100644 --- a/blog_posts/css-units-cheatsheet.md +++ b/blog_posts/css-units-cheatsheet.md @@ -2,6 +2,7 @@ title: CSS units Cheat Sheet type: cheatsheet tags: css,layout,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/measuring.jpg excerpt: Learn everything you need to know about CSS units with this handy cheatsheet. diff --git a/blog_posts/css-variables.md b/blog_posts/css-variables.md index 22c05b4fb..917661064 100644 --- a/blog_posts/css-variables.md +++ b/blog_posts/css-variables.md @@ -2,6 +2,7 @@ title: What are CSS variables and where can I use them? type: question tags: css,visual,layout +expertise: intermediate author: chalarangelo cover: blog_images/css-variables.jpg excerpt: Learn how CSS custom properties (CSS variables) work and what you can use them for in your code and designs. diff --git a/blog_posts/custom-file-download-names.md b/blog_posts/custom-file-download-names.md index 80fb3cd43..0400c6e89 100644 --- a/blog_posts/custom-file-download-names.md +++ b/blog_posts/custom-file-download-names.md @@ -2,6 +2,7 @@ title: "Tip: Customize the names of downloadable files" type: tip tags: webdev,html,browser +expertise: intermediate author: chalarangelo cover: blog_images/hard-disk.jpg excerpt: Learn what HTML5 attribute you can use to customize the names of your downloadable files with this quick tip. diff --git a/blog_posts/detect-caps-lock-is-on.md b/blog_posts/detect-caps-lock-is-on.md index 709a2cf4d..4b499e92e 100644 --- a/blog_posts/detect-caps-lock-is-on.md +++ b/blog_posts/detect-caps-lock-is-on.md @@ -2,6 +2,7 @@ title: How can I detect if Caps Lock is on with JavaScript? type: question tags: javascript,browser,event +expertise: intermediate author: chalarangelo cover: blog_images/keyboard.jpg excerpt: If you need to check if Caps Lock is on when the user is typing in the browser, JavaScript's got you covered. diff --git a/blog_posts/dns-record-basics.md b/blog_posts/dns-record-basics.md index 360c10591..2fad046b0 100644 --- a/blog_posts/dns-record-basics.md +++ b/blog_posts/dns-record-basics.md @@ -2,6 +2,7 @@ title: DNS Record Basics type: cheatsheet tags: webdev,dns,server,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/sparkles.jpg excerpt: DNS records may not be a thing you work too often with. Regardless, some basic knowledge can go a long way. diff --git a/blog_posts/eslint-refactor-for-in.md b/blog_posts/eslint-refactor-for-in.md index 1e6c373d5..6941081ac 100644 --- a/blog_posts/eslint-refactor-for-in.md +++ b/blog_posts/eslint-refactor-for-in.md @@ -2,6 +2,7 @@ title: "Tip: Refactoring your for...in loops to avoid ESLint warnings" type: tip tags: javascript,array,iterator,eslint +expertise: intermediate author: chalarangelo cover: blog_images/typing.jpg excerpt: ESLint is a very powerful tool that can save you a lot of headaches, but sometimes it gets in the way. Learn how to refactor code to get rid of a common warning. diff --git a/blog_posts/flexbox-cheatsheet.md b/blog_posts/flexbox-cheatsheet.md index bc4e5bd82..909c847c2 100644 --- a/blog_posts/flexbox-cheatsheet.md +++ b/blog_posts/flexbox-cheatsheet.md @@ -2,6 +2,7 @@ title: Flexbox Cheat Sheet type: cheatsheet tags: css,layout,flexbox,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/frames.jpg excerpt: Flexbox allows you to create fluid layouts easily. If you find yourself constantly looking up the syntax or how it work, this handy cheatsheet is all you need. diff --git a/blog_posts/git-aliases.md b/blog_posts/git-aliases.md index 4e6734c3c..c25b522ea 100644 --- a/blog_posts/git-aliases.md +++ b/blog_posts/git-aliases.md @@ -2,6 +2,7 @@ title: Git aliases type: cheatsheet tags: git,configuration,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/organizer.jpg excerpt: Increase your productivity by creating aliases for many common git operations. diff --git a/blog_posts/git-commit-different-date.md b/blog_posts/git-commit-different-date.md index 914492f45..21ebf8480 100644 --- a/blog_posts/git-commit-different-date.md +++ b/blog_posts/git-commit-different-date.md @@ -2,6 +2,7 @@ title: "Tip: Create a commit with a different date" type: tip tags: git,commit +expertise: intermediate author: chalarangelo cover: blog_images/ice.jpg excerpt: Ever needed to create a git commit with a different date? Here's a quick and easy way to do it. diff --git a/blog_posts/git-fast-forward.md b/blog_posts/git-fast-forward.md index ad53f29e6..ac3087066 100644 --- a/blog_posts/git-fast-forward.md +++ b/blog_posts/git-fast-forward.md @@ -2,6 +2,7 @@ title: How does Git's fast-forward mode work? type: question tags: git,branch +expertise: intermediate author: chalarangelo cover: blog_images/boats.jpg excerpt: Merging a branch is a pretty common Git operation. Learn how fast-forward mode works and its benefits, so you can decide if it's a good fit for you and your team. diff --git a/blog_posts/github-co-authors.md b/blog_posts/github-co-authors.md index e68671772..e4fa4114a 100644 --- a/blog_posts/github-co-authors.md +++ b/blog_posts/github-co-authors.md @@ -2,6 +2,7 @@ title: "Tip: How to add multiple authors to a commit" type: tip tags: git,github,programming,webdev +expertise: intermediate author: chalarangelo cover: blog_images/book-chair.jpg excerpt: Learn how to add multiple authors to a git commit with this quick and easy tip. diff --git a/blog_posts/http-status-codes-cheatsheet.md b/blog_posts/http-status-codes-cheatsheet.md index 3f122bccc..62dc0135c 100644 --- a/blog_posts/http-status-codes-cheatsheet.md +++ b/blog_posts/http-status-codes-cheatsheet.md @@ -2,6 +2,7 @@ title: Common HTTP status codes Cheat Sheet type: cheatsheet tags: webdev,http +expertise: intermediate author: chalarangelo cover: blog_images/lake-runner.jpg excerpt: Familiarize yourself with the most common HTTP status codes with this handy cheatsheet. diff --git a/blog_posts/javascript-array-comparison.md b/blog_posts/javascript-array-comparison.md index 6eba92ac9..0d5821c8c 100644 --- a/blog_posts/javascript-array-comparison.md +++ b/blog_posts/javascript-array-comparison.md @@ -2,6 +2,7 @@ title: How do I compare two arrays in JavaScript? type: question tags: javascript,array,comparison +expertise: intermediate author: chalarangelo cover: blog_images/coconuts.jpg excerpt: Learn how you can compare two arrays in JavaScript using various different techniques. diff --git a/blog_posts/javascript-arrow-function-event-listeners.md b/blog_posts/javascript-arrow-function-event-listeners.md index 1f7f99967..5ccd5704f 100644 --- a/blog_posts/javascript-arrow-function-event-listeners.md +++ b/blog_posts/javascript-arrow-function-event-listeners.md @@ -2,6 +2,7 @@ title: Can I use an arrow function as the callback for an event listener in JavaScript? type: question tags: javascript,browser,event,function +expertise: intermediate author: chalarangelo cover: blog_images/arrow-functions.jpg excerpt: Learn the differences between JavaScript ES6 arrow functions and regular functions and how they affect event listener callbacks. diff --git a/blog_posts/javascript-arrow-functions.md b/blog_posts/javascript-arrow-functions.md index 23441b62f..d35d92430 100644 --- a/blog_posts/javascript-arrow-functions.md +++ b/blog_posts/javascript-arrow-functions.md @@ -2,6 +2,7 @@ title: Introduction to arrow functions in JavaScript type: story tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/arrow-functions.jpg excerpt: JavaScript arrow functions are a very useful tool to learn and master. Here's a complete introduction to everything you need to know. diff --git a/blog_posts/javascript-arrow-regular-function-differences.md b/blog_posts/javascript-arrow-regular-function-differences.md index 8e598b8e0..fb01d4953 100644 --- a/blog_posts/javascript-arrow-regular-function-differences.md +++ b/blog_posts/javascript-arrow-regular-function-differences.md @@ -2,6 +2,7 @@ title: What are the differences between arrow functions and regular functions in JavaScript? type: question tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/fallen-leaves.jpg excerpt: JavaScript's arrow functions are seemingly the same as regular functions, but there are some important differences you need to know. diff --git a/blog_posts/javascript-async-array-loops.md b/blog_posts/javascript-async-array-loops.md index 6a6e3a8a2..027241f49 100644 --- a/blog_posts/javascript-async-array-loops.md +++ b/blog_posts/javascript-async-array-loops.md @@ -2,6 +2,7 @@ title: Asynchronous array loops in JavaScript type: story tags: javascript,array,function,promise +expertise: intermediate author: chalarangelo cover: blog_images/sunflowers.jpg excerpt: Asynchronously looping over arrays in JavaScript comes with a few caveats you should watch out for. diff --git a/blog_posts/javascript-await-timeout.md b/blog_posts/javascript-await-timeout.md index 8bc06635e..ca73a6030 100644 --- a/blog_posts/javascript-await-timeout.md +++ b/blog_posts/javascript-await-timeout.md @@ -2,6 +2,7 @@ title: How can I add a timeout to a promise in JavaScript? type: question tags: javascript,promise,timeout,class +expertise: intermediate author: chalarangelo cover: blog_images/walking.jpg excerpt: Oftentimes you might need to add a timeout to a promise in JavaScript. Learn how to do this and more in this short guide. diff --git a/blog_posts/javascript-boolean-function.md b/blog_posts/javascript-boolean-function.md index 5c394ef24..ed9f25b1c 100644 --- a/blog_posts/javascript-boolean-function.md +++ b/blog_posts/javascript-boolean-function.md @@ -2,6 +2,7 @@ title: Where and how can I use the Boolean function in JavaScript? type: question tags: javascript,function,type +expertise: intermediate author: chalarangelo cover: blog_images/rocky-lake.jpg excerpt: JavaScript's built-in Boolean function can be very useful for truth-checking data among other things. Learn how to use it and level up your code today. diff --git a/blog_posts/javascript-boolean-trap.md b/blog_posts/javascript-boolean-trap.md index 187418519..a5ddd037c 100644 --- a/blog_posts/javascript-boolean-trap.md +++ b/blog_posts/javascript-boolean-trap.md @@ -2,6 +2,7 @@ title: Boolean traps and how to avoid them type: story tags: javascript,function,type,boolean +expertise: intermediate author: chalarangelo cover: blog_images/lighthouse.jpg excerpt: Boolean traps can cause readabiltiy and maintainability issues in your code. Learn what they are, how to spot and fix them in this article. diff --git a/blog_posts/javascript-callbacks.md b/blog_posts/javascript-callbacks.md index f336da118..8c167d541 100644 --- a/blog_posts/javascript-callbacks.md +++ b/blog_posts/javascript-callbacks.md @@ -2,6 +2,7 @@ title: A cautionary tale about JavaScript callbacks type: story tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/rabbit-call.jpg excerpt: JavaScript callbacks are especially tricky when you're not careful. Take a deeper dive into potential issues and how to avoid them. diff --git a/blog_posts/javascript-classical-vs-prototypal-inheritance.md b/blog_posts/javascript-classical-vs-prototypal-inheritance.md index 63ad917cf..8ce53b574 100644 --- a/blog_posts/javascript-classical-vs-prototypal-inheritance.md +++ b/blog_posts/javascript-classical-vs-prototypal-inheritance.md @@ -2,6 +2,7 @@ title: How does JavaScript's prototypal inheritance differ from classical inheritance? type: question tags: javascript,object,class +expertise: intermediate author: chalarangelo cover: blog_images/last-light.jpg excerpt: Understading the difference between these two object-oriented programming paradigms is key to taking your skills to the next level. diff --git a/blog_posts/javascript-closures.md b/blog_posts/javascript-closures.md index 601bbfa8d..f3a2bf348 100644 --- a/blog_posts/javascript-closures.md +++ b/blog_posts/javascript-closures.md @@ -2,6 +2,7 @@ title: What are JavaScript closures? type: question tags: javascript,function,closure +expertise: intermediate author: chalarangelo cover: blog_images/cherry-trees.jpg excerpt: Learn and understand closures, a core concept in JavaScript programming, and level up your code. diff --git a/blog_posts/javascript-copy-array.md b/blog_posts/javascript-copy-array.md index 57535fcbe..599627ca1 100644 --- a/blog_posts/javascript-copy-array.md +++ b/blog_posts/javascript-copy-array.md @@ -2,6 +2,7 @@ title: How can I clone an array in JavaScript? type: question tags: javascript,array +expertise: intermediate author: chalarangelo cover: blog_images/colorful-plastic.jpg excerpt: Pick up a few new tricks which you can use to clone arrays in JavaScript. diff --git a/blog_posts/javascript-date-comparison.md b/blog_posts/javascript-date-comparison.md index 5efbef449..0a61ec33e 100644 --- a/blog_posts/javascript-date-comparison.md +++ b/blog_posts/javascript-date-comparison.md @@ -2,6 +2,7 @@ title: How do I compare two dates in JavaScript? type: question tags: javascript,date,comparison +expertise: intermediate author: chalarangelo cover: blog_images/pineapple-at-work.jpg excerpt: Learn how you can compare two dates in JavaScript using various different techniques. diff --git a/blog_posts/javascript-deep-freeze-object.md b/blog_posts/javascript-deep-freeze-object.md index a442eb32b..a902487b3 100644 --- a/blog_posts/javascript-deep-freeze-object.md +++ b/blog_posts/javascript-deep-freeze-object.md @@ -2,6 +2,7 @@ title: How can I deep freeze an object in JavaScript? type: question tags: javascript,object +expertise: intermediate author: chalarangelo cover: blog_images/frozen-globe.jpg excerpt: Learn how mutability works in JavaScript, its applications to objects and how you can properly freeze them to make them constant. diff --git a/blog_posts/javascript-destructuring-assignment.md b/blog_posts/javascript-destructuring-assignment.md index ca1f7ee59..54b84c951 100644 --- a/blog_posts/javascript-destructuring-assignment.md +++ b/blog_posts/javascript-destructuring-assignment.md @@ -2,6 +2,7 @@ title: Where and how can I use the destructuring assignment syntax in JavaScript? type: question tags: javascript,array,object +expertise: intermediate author: chalarangelo cover: blog_images/building-blocks.jpg excerpt: Learn the basics of the destructuring assignment syntax in JavaScript ES6 and improve your code with this easy guide. diff --git a/blog_posts/javascript-empty-array.md b/blog_posts/javascript-empty-array.md index 5f1ae49d0..1e7b4d9c3 100644 --- a/blog_posts/javascript-empty-array.md +++ b/blog_posts/javascript-empty-array.md @@ -2,6 +2,7 @@ title: How do I empty an array in JavaScript? type: question tags: javascript,array +expertise: intermediate author: chalarangelo cover: blog_images/coconuts.jpg excerpt: You can use a lot of different techniques to empty an array in JavaScript. See which ones best suits your needs with this quick guide. diff --git a/blog_posts/javascript-encodeuri-encodeuricomponent.md b/blog_posts/javascript-encodeuri-encodeuricomponent.md index e76a16398..f5c749538 100644 --- a/blog_posts/javascript-encodeuri-encodeuricomponent.md +++ b/blog_posts/javascript-encodeuri-encodeuricomponent.md @@ -2,6 +2,7 @@ title: What is the difference between encodeURI() and encodeURIComponent() in JavaScript? type: question tags: javascript,browser +expertise: intermediate author: chalarangelo cover: blog_images/laptop-view.jpg excerpt: JavaScript provides two methods for encoding characters to URL-safe strings. Do you know when to use each one? diff --git a/blog_posts/javascript-enum.md b/blog_posts/javascript-enum.md index 0ef291d3c..0199f0f34 100644 --- a/blog_posts/javascript-enum.md +++ b/blog_posts/javascript-enum.md @@ -2,6 +2,7 @@ title: How can I define an enum in JavaScript? type: question tags: javascript,object,class,symbol,generator +expertise: intermediate author: chalarangelo cover: blog_images/book-chair.jpg excerpt: Enums are part of TypeScript, but what about defininf enums in plain old JavaScript? Here are a few way you can do that. diff --git a/blog_posts/javascript-equality.md b/blog_posts/javascript-equality.md index 2091a7f3a..f3ee99b83 100644 --- a/blog_posts/javascript-equality.md +++ b/blog_posts/javascript-equality.md @@ -2,6 +2,7 @@ title: What is the difference between JavaScript's equality operators? type: question tags: javascript,type,comparison +expertise: intermediate author: chalarangelo cover: blog_images/beach-pineapple.jpg excerpt: Learn all you need to know about the differences between JavaScript's double equals and triple equals operators. diff --git a/blog_posts/javascript-event-bubbling-capturing-delegation.md b/blog_posts/javascript-event-bubbling-capturing-delegation.md index a84e6c5d3..24a52df24 100644 --- a/blog_posts/javascript-event-bubbling-capturing-delegation.md +++ b/blog_posts/javascript-event-bubbling-capturing-delegation.md @@ -2,6 +2,7 @@ title: Understanding event bubbling, capturing and delegation in JavaScript type: story tags: javascript,browser,event +expertise: intermediate author: chalarangelo cover: blog_images/fishermen.jpg excerpt: Understand how events work in JavaScript and learn when to use event bubbling, event capturing and event delegation with this short guide. diff --git a/blog_posts/javascript-expression-statement.md b/blog_posts/javascript-expression-statement.md index 6f688b77d..adcfcf552 100644 --- a/blog_posts/javascript-expression-statement.md +++ b/blog_posts/javascript-expression-statement.md @@ -2,6 +2,7 @@ title: What is the difference between an expression and a statement in JavaScript? type: question tags: javascript,type +expertise: intermediate author: chalarangelo cover: blog_images/forest-balcony.jpg excerpt: JavaScript distinguishes expressions and statements. Learn their differences in this short article. diff --git a/blog_posts/javascript-for-in-for-of-foreach.md b/blog_posts/javascript-for-in-for-of-foreach.md index 8576b5ae8..8da252129 100644 --- a/blog_posts/javascript-for-in-for-of-foreach.md +++ b/blog_posts/javascript-for-in-for-of-foreach.md @@ -2,6 +2,7 @@ title: What is the difference between JavaScript's for...in, for...of and forEach? type: question tags: javascript,array,object,iterator +expertise: intermediate author: chalarangelo cover: blog_images/lake-loop.jpg excerpt: Learn the differences between the three most commonly used iteration methods offered by JavaScript, which often confuse beginners and veterans alike. diff --git a/blog_posts/javascript-for-loop-early-break.md b/blog_posts/javascript-for-loop-early-break.md index bfd2d9b01..c8c2c4bde 100644 --- a/blog_posts/javascript-for-loop-early-break.md +++ b/blog_posts/javascript-for-loop-early-break.md @@ -2,6 +2,7 @@ title: "Tip: Use JavaScript for loops if you need to break out early" type: tip tags: javascript,array,loop +expertise: intermediate author: chalarangelo cover: blog_images/armchair.jpg excerpt: JavaScript provides a handful of ways to iterate over data. While array methods are usually preferred, there are cases where a `for` loop is actually the best option. diff --git a/blog_posts/javascript-function-call-apply-bind.md b/blog_posts/javascript-function-call-apply-bind.md index 29947dee0..ecfe61ed2 100644 --- a/blog_posts/javascript-function-call-apply-bind.md +++ b/blog_posts/javascript-function-call-apply-bind.md @@ -2,6 +2,7 @@ title: JavaScript function methods - call(), apply() and bind() type: story tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/canoe.jpg excerpt: Learn everything you need to know about JavaScript's `Function.prototype.call()`, `Function.prototype.apply()` and `Function.prototype.bind()` with this short guide. diff --git a/blog_posts/javascript-higher-order-functions.md b/blog_posts/javascript-higher-order-functions.md index 8234128d2..0e72cc298 100644 --- a/blog_posts/javascript-higher-order-functions.md +++ b/blog_posts/javascript-higher-order-functions.md @@ -2,6 +2,7 @@ title: Understanding higher-order functions in JavaScript type: story tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/rock-climbing.jpg excerpt: Learn everything you need to know about higher-order functions with this short guide and level up your programming skills. diff --git a/blog_posts/javascript-iife.md b/blog_posts/javascript-iife.md index 7ee0b50dd..ea79dc5e6 100644 --- a/blog_posts/javascript-iife.md +++ b/blog_posts/javascript-iife.md @@ -2,6 +2,7 @@ title: What is an IIFE in JavaScript? type: question tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/tropical-waterfall.jpg excerpt: An Immediately Invoked Function Expression (IIFE) is a JavaScript trick that trips up many developers. Here's what you need to know. diff --git a/blog_posts/javascript-index-for-of-loop.md b/blog_posts/javascript-index-for-of-loop.md index 9b00b4468..400359d84 100644 --- a/blog_posts/javascript-index-for-of-loop.md +++ b/blog_posts/javascript-index-for-of-loop.md @@ -2,6 +2,7 @@ title: "Tip: Get the index of an array item in a JavaScript for...of loop" type: tip tags: javascript,array,iterator +expertise: intermediate author: chalarangelo cover: blog_images/cave-view.jpg excerpt: Did you know you can get the index of an array item in a JavaScript for...of loop? Learn how with this bite-sized tip. diff --git a/blog_posts/javascript-iterable-to-array.md b/blog_posts/javascript-iterable-to-array.md index 7f5a5cbde..fa33dcdcc 100644 --- a/blog_posts/javascript-iterable-to-array.md +++ b/blog_posts/javascript-iterable-to-array.md @@ -2,6 +2,7 @@ title: How do I convert an iterable to an array in JavaScript? type: question tags: javascript,object,array,string +expertise: intermediate author: chalarangelo cover: blog_images/waves.jpg excerpt: Learn how to use the JavaScript ES6 spread syntax to converting iterables to arrays and level up your code today. diff --git a/blog_posts/javascript-iterators.md b/blog_posts/javascript-iterators.md index a10269c3e..24db0c80a 100644 --- a/blog_posts/javascript-iterators.md +++ b/blog_posts/javascript-iterators.md @@ -2,6 +2,7 @@ title: What are JavaScript Iterators and where can I use them? type: question tags: javascript,array,object,iterator +expertise: intermediate author: chalarangelo cover: blog_images/balloons.jpg excerpt: Learn how the new JavaScript ES6 Iterators work and how you can use them to level up your programming projects by understanding these short code examples. diff --git a/blog_posts/javascript-json-stringify-pick-keys.md b/blog_posts/javascript-json-stringify-pick-keys.md index f43b706ee..1f9f3a1fd 100644 --- a/blog_posts/javascript-json-stringify-pick-keys.md +++ b/blog_posts/javascript-json-stringify-pick-keys.md @@ -2,6 +2,7 @@ title: "Tip: Serialize specific properties from a JSON object" type: tip tags: javascript,object,json +expertise: intermediate author: chalarangelo cover: blog_images/coffee-drip.jpg excerpt: Have you ever wanted to serialize an object but only include certain keys? Turns out JavaScript provides an easy way to do this! diff --git a/blog_posts/javascript-listen-once.md b/blog_posts/javascript-listen-once.md index f878af5d9..903cd466c 100644 --- a/blog_posts/javascript-listen-once.md +++ b/blog_posts/javascript-listen-once.md @@ -2,6 +2,7 @@ title: How can I execute an event handler at most once? type: question tags: javascript,browser,event +expertise: intermediate author: maciv cover: blog_images/dog-waiting.jpg excerpt: Learn how to attach an event handler to events that is executed at most once in this JavaScript article. diff --git a/blog_posts/javascript-make-iterable.md b/blog_posts/javascript-make-iterable.md index 11a81126b..ac5ba86cb 100644 --- a/blog_posts/javascript-make-iterable.md +++ b/blog_posts/javascript-make-iterable.md @@ -2,6 +2,7 @@ title: "Tip: Make any JavaScript value iterable" type: tip tags: javascript,array,iterator,generator +expertise: intermediate author: chalarangelo cover: blog_images/colorful-plastic.jpg excerpt: Did you know you can define an iterator for any JavaScript value? This quick tip will show you how. diff --git a/blog_posts/javascript-memoization.md b/blog_posts/javascript-memoization.md index 70756d356..c5d086893 100644 --- a/blog_posts/javascript-memoization.md +++ b/blog_posts/javascript-memoization.md @@ -2,6 +2,7 @@ title: Where and how can I use memoization in JavaScript? type: question tags: javascript,function,memoization +expertise: intermediate author: chalarangelo cover: blog_images/cherry-trees.jpg excerpt: Learn different ways to memoize function calls in JavaScript as well as when to use memoization to get the best performance results. diff --git a/blog_posts/javascript-merge-arrays.md b/blog_posts/javascript-merge-arrays.md index a2c3938d7..ff4d03a6d 100644 --- a/blog_posts/javascript-merge-arrays.md +++ b/blog_posts/javascript-merge-arrays.md @@ -2,6 +2,7 @@ title: How do I merge two arrays in JavaScript? type: question tags: javascript,array +expertise: intermediate author: chalarangelo cover: blog_images/arrays.jpg excerpt: Arrays are one of the most used data types in any programming language. Learn how to merge two arrays in JavaScript with this short guide. diff --git a/blog_posts/javascript-modify-url-without-reload.md b/blog_posts/javascript-modify-url-without-reload.md index ae08c6597..d3cc421cf 100644 --- a/blog_posts/javascript-modify-url-without-reload.md +++ b/blog_posts/javascript-modify-url-without-reload.md @@ -2,6 +2,7 @@ title: How do I use JavaScript to modify the URL without reloading the page? type: question tags: javascript,browser +expertise: intermediate author: chalarangelo cover: blog_images/compass.jpg excerpt: Learn all of the options JavaScript provides for modifying the URL of the current page in the browser without reloading the page. diff --git a/blog_posts/javascript-module-cheatsheet.md b/blog_posts/javascript-module-cheatsheet.md index eeb888ae7..7b6733f77 100644 --- a/blog_posts/javascript-module-cheatsheet.md +++ b/blog_posts/javascript-module-cheatsheet.md @@ -2,6 +2,7 @@ title: JavaScript modules Cheat Sheet type: cheatsheet tags: javascript,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/mountain-lake-2.jpg excerpt: Learn everything you need to know about JavaScript modules with this handy cheatsheet. diff --git a/blog_posts/javascript-naming-conventions.md b/blog_posts/javascript-naming-conventions.md index 7e6a7347b..727e466cb 100644 --- a/blog_posts/javascript-naming-conventions.md +++ b/blog_posts/javascript-naming-conventions.md @@ -2,6 +2,7 @@ title: JavaScript naming conventions type: story tags: javascript,variable,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/naming-conventions.jpg excerpt: Naming conventions, while not easy to enforce, make code easier to read and understand. Learn how to name your variables in JavaScript with this handy guide. diff --git a/blog_posts/javascript-nullish-coalescing-optional-chaining.md b/blog_posts/javascript-nullish-coalescing-optional-chaining.md index 1dea50686..69c7ad747 100644 --- a/blog_posts/javascript-nullish-coalescing-optional-chaining.md +++ b/blog_posts/javascript-nullish-coalescing-optional-chaining.md @@ -2,6 +2,7 @@ title: How can I use optional chaining and nullish coalescing in my JavaScript project? type: question tags: javascript,type +expertise: intermediate author: chalarangelo cover: blog_images/purple-leaves.jpg excerpt: JavaScript ES2020 introduced optional chaining and nullish coalescing among other features. Learn everything you need to know with this quick guide. diff --git a/blog_posts/javascript-numeric-separator.md b/blog_posts/javascript-numeric-separator.md index 4919b86f0..62cbb6d3b 100644 --- a/blog_posts/javascript-numeric-separator.md +++ b/blog_posts/javascript-numeric-separator.md @@ -2,6 +2,7 @@ title: JavaScript's numeric separators explained type: story tags: javascript,math,type +expertise: intermediate author: chalarangelo cover: blog_images/coffee-drip.jpg excerpt: Numeric separators are a somewhat lesser-known JavaScript syntactic sugar that can make working with large constants a lot easier. diff --git a/blog_posts/javascript-object-array-proxy.md b/blog_posts/javascript-object-array-proxy.md index be274be72..b186e7151 100644 --- a/blog_posts/javascript-object-array-proxy.md +++ b/blog_posts/javascript-object-array-proxy.md @@ -2,6 +2,7 @@ title: Can I use an object as an array without modifying it in JavaScript? type: question tags: javascript,object,array,proxy,iterator,pattern +expertise: intermediate author: chalarangelo cover: blog_images/birds.jpg excerpt: Learn how you can leverage the Proxy object to use a JavaScript object the same way as you would use a regular array. diff --git a/blog_posts/javascript-object-comparison.md b/blog_posts/javascript-object-comparison.md index 75d098093..3680b3d0d 100644 --- a/blog_posts/javascript-object-comparison.md +++ b/blog_posts/javascript-object-comparison.md @@ -2,6 +2,7 @@ title: How do I compare two objects in JavaScript? type: question tags: javascript,object,comparison +expertise: intermediate author: chalarangelo cover: blog_images/blue-lake.jpg excerpt: Learn how you can compare two objects in JavaScript using various different techniques. diff --git a/blog_posts/javascript-object-is-triple-equals.md b/blog_posts/javascript-object-is-triple-equals.md index 5a1922c4b..3831c9ef9 100644 --- a/blog_posts/javascript-object-is-triple-equals.md +++ b/blog_posts/javascript-object-is-triple-equals.md @@ -2,6 +2,7 @@ title: What's the difference between Object.is() and the triple equals operator in JavaScript? type: question tags: javascript,object,type +expertise: intermediate author: chalarangelo cover: blog_images/rocky-mountains.jpg excerpt: "`Object.is()` and the triple equals operator (`===`) can both be used for equality checking in JavaScript, but when should you use each one?" diff --git a/blog_posts/javascript-pass-by-reference-or-pass-by-value.md b/blog_posts/javascript-pass-by-reference-or-pass-by-value.md index 4f457248b..aa3c338c7 100644 --- a/blog_posts/javascript-pass-by-reference-or-pass-by-value.md +++ b/blog_posts/javascript-pass-by-reference-or-pass-by-value.md @@ -2,6 +2,7 @@ title: Is JavaScript pass-by-value or pass-by-reference? type: question tags: javascript,function,object +expertise: intermediate author: chalarangelo cover: blog_images/baloons-field.jpg excerpt: How JavaScript handles passing data is a source of confusion and bugs for many developers, especially when it comes to object types. diff --git a/blog_posts/javascript-prefix-postfix-operators.md b/blog_posts/javascript-prefix-postfix-operators.md index 653264627..273f39134 100644 --- a/blog_posts/javascript-prefix-postfix-operators.md +++ b/blog_posts/javascript-prefix-postfix-operators.md @@ -2,6 +2,7 @@ title: What is the difference between prefix and postfix operators? type: question tags: javascript,math +expertise: intermediate author: chalarangelo cover: blog_images/plant-candle.jpg excerpt: While both the prefix and postfix operators increment a value, the resulting value of the expression is very different. diff --git a/blog_posts/javascript-prevent-string-being-escaped.md b/blog_posts/javascript-prevent-string-being-escaped.md index bfb0fd4fd..b4d9d604b 100644 --- a/blog_posts/javascript-prevent-string-being-escaped.md +++ b/blog_posts/javascript-prevent-string-being-escaped.md @@ -2,6 +2,7 @@ title: "Tip: Prevent a string from being escaped in JavaScript" type: tip tags: javascript,string +expertise: intermediate author: chalarangelo cover: blog_images/glass-blowing.jpg excerpt: Strings in JavaScript can be escaped in various ways. But what if you need to prevent a string from being escaped? Here's a handy trick for that. diff --git a/blog_posts/javascript-primitive-instanceof.md b/blog_posts/javascript-primitive-instanceof.md index 7591b8ffe..63d13529e 100644 --- a/blog_posts/javascript-primitive-instanceof.md +++ b/blog_posts/javascript-primitive-instanceof.md @@ -2,6 +2,7 @@ title: Is there a way to use instanceof for primitive JavaScript values? type: question tags: javascript,type +expertise: intermediate author: chalarangelo cover: blog_images/wooden-bowl.jpg excerpt: JavaScript's `instanceof` operator can't be used with primitive values, but there are a couple of simple tricks that you can leverage to your advantage. diff --git a/blog_posts/javascript-promise-then-catch.md b/blog_posts/javascript-promise-then-catch.md index 6b9d0c2ff..103e2b1bf 100644 --- a/blog_posts/javascript-promise-then-catch.md +++ b/blog_posts/javascript-promise-then-catch.md @@ -2,6 +2,7 @@ title: "Tip: The order of then and catch matters" type: tip tags: javascript,function,promise +expertise: intermediate author: chalarangelo cover: blog_images/blue-sunrise.jpg excerpt: Messing up the order of chained `then` and `catch` methods in JavaScript promises can result in all sorts of problems. Here's a short primer on the subject. diff --git a/blog_posts/javascript-promise-then-finally.md b/blog_posts/javascript-promise-then-finally.md index 9d30c26d5..5cf47ecb8 100644 --- a/blog_posts/javascript-promise-then-finally.md +++ b/blog_posts/javascript-promise-then-finally.md @@ -2,6 +2,7 @@ title: What is the difference between then and finally in a JavaScript promise? type: question tags: javascript,function,promise +expertise: intermediate author: chalarangelo cover: blog_images/blue-sunrise.jpg excerpt: On the surface, a JavaScript promise's `then` and `finally` methods seem very similar. But there are a few important differences you need to keep in mind. diff --git a/blog_posts/javascript-promises.md b/blog_posts/javascript-promises.md index 21a98179d..5232cd0fb 100644 --- a/blog_posts/javascript-promises.md +++ b/blog_posts/javascript-promises.md @@ -2,6 +2,7 @@ title: What are promises in JavaScript? In which states can a promise be? type: question tags: javascript,function,promise +expertise: intermediate author: chalarangelo cover: blog_images/sail-away.jpg excerpt: JavaScript's promises represent the eventual completion (or failure) of asynchronous operations and their resulting value. diff --git a/blog_posts/javascript-pure-functions.md b/blog_posts/javascript-pure-functions.md index 5d093a689..bedbeb273 100644 --- a/blog_posts/javascript-pure-functions.md +++ b/blog_posts/javascript-pure-functions.md @@ -2,6 +2,7 @@ title: What is a pure function? type: question tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/dark-leaves.jpg excerpt: Pure functions are a very important concept to know, especially if you're interested in functional programming. diff --git a/blog_posts/javascript-query-selector-shorthand.md b/blog_posts/javascript-query-selector-shorthand.md index f6681330a..6e8e316f7 100644 --- a/blog_posts/javascript-query-selector-shorthand.md +++ b/blog_posts/javascript-query-selector-shorthand.md @@ -2,6 +2,7 @@ title: "Tip: Create your own query selector shorthand" type: tip tags: javascript,browser +expertise: intermediate author: chalarangelo cover: blog_images/pineapple-at-work.jpg excerpt: Ever wanted to create your own jquery-like query selector shorthand? Here's how! diff --git a/blog_posts/javascript-range-generator.md b/blog_posts/javascript-range-generator.md index bc82b7576..cfea65f4a 100644 --- a/blog_posts/javascript-range-generator.md +++ b/blog_posts/javascript-range-generator.md @@ -2,6 +2,7 @@ title: Using JavaScript generator functions for ranges type: story tags: javascript,function,array +expertise: intermediate author: chalarangelo cover: blog_images/generator.jpg excerpt: Learn how to use JavaScript ES6 generators and iterators to iterate over ranges of numbers. diff --git a/blog_posts/javascript-recursion.md b/blog_posts/javascript-recursion.md index 8c830a2f7..2a4797894 100644 --- a/blog_posts/javascript-recursion.md +++ b/blog_posts/javascript-recursion.md @@ -2,6 +2,7 @@ title: What is recursion and when is it useful? type: question tags: javascript,function,recursion +expertise: intermediate author: chalarangelo cover: blog_images/curve.jpg excerpt: Recursion is a very important programming concept all developers should be familiar with. diff --git a/blog_posts/javascript-remove-object-property.md b/blog_posts/javascript-remove-object-property.md index 1cfbb3b44..efdfe87b6 100644 --- a/blog_posts/javascript-remove-object-property.md +++ b/blog_posts/javascript-remove-object-property.md @@ -2,6 +2,7 @@ title: How do I remove a property from a JavaScript object? type: question tags: javascript,object +expertise: intermediate author: chalarangelo cover: blog_images/brown-bird.jpg excerpt: Ever wanted to delete a property from a JavaScript object? Here are a few way you can accomplish that. diff --git a/blog_posts/javascript-return-constructor.md b/blog_posts/javascript-return-constructor.md index 69c2dfe3f..72740552e 100644 --- a/blog_posts/javascript-return-constructor.md +++ b/blog_posts/javascript-return-constructor.md @@ -2,6 +2,7 @@ title: What does a JavaScript constructor return? type: question tags: javascript,function,class,object +expertise: intermediate author: chalarangelo cover: blog_images/architectural.jpg excerpt: The constructor is arguably the most crucial part of any JavaScript class, which is why you might want to take a closer look at what they return. diff --git a/blog_posts/javascript-shallow-deep-clone.md b/blog_posts/javascript-shallow-deep-clone.md index ae2a72f31..402ae2910 100644 --- a/blog_posts/javascript-shallow-deep-clone.md +++ b/blog_posts/javascript-shallow-deep-clone.md @@ -2,6 +2,7 @@ title: How do I clone an object in JavaScript? type: question tags: javascript,object +expertise: intermediate author: chalarangelo cover: blog_images/pagodas.jpg excerpt: Learn how JavaScript handles mutable data, such as objects and arrays, and understand how shallow cloning and deep cloning work. diff --git a/blog_posts/javascript-singleton-proxy.md b/blog_posts/javascript-singleton-proxy.md index 92c3ed68a..b1525b3c7 100644 --- a/blog_posts/javascript-singleton-proxy.md +++ b/blog_posts/javascript-singleton-proxy.md @@ -2,6 +2,7 @@ title: How can I implement a singleton in JavaScript? type: question tags: javascript,object,function,proxy,pattern +expertise: intermediate author: chalarangelo cover: blog_images/obelisk.jpg excerpt: Learn how to implement the singleton design pattern in JavaScript, using the Proxy object. diff --git a/blog_posts/javascript-sleep.md b/blog_posts/javascript-sleep.md index 39532a2f7..9d69e024d 100644 --- a/blog_posts/javascript-sleep.md +++ b/blog_posts/javascript-sleep.md @@ -2,6 +2,7 @@ title: How can I implement a sleep function in JavaScript? type: question tags: javascript,date,promise +expertise: intermediate author: chalarangelo cover: blog_images/sleepy-cat.jpg excerpt: Learn all the different ways you can implement a `sleep()` function in JavaScript. diff --git a/blog_posts/javascript-spread-rest-syntax.md b/blog_posts/javascript-spread-rest-syntax.md index 363b0baa5..dbbcd0d19 100644 --- a/blog_posts/javascript-spread-rest-syntax.md +++ b/blog_posts/javascript-spread-rest-syntax.md @@ -2,6 +2,7 @@ title: Understanding the spread and rest syntax in Javascript type: story tags: javascript,array,function +expertise: intermediate author: chalarangelo cover: blog_images/antelope.jpg excerpt: JavaScript ES6 introduced us to several powerful features, such as the spread and rest syntax. Learn everything you need to know in this quick guide. diff --git a/blog_posts/javascript-store-dom-items.md b/blog_posts/javascript-store-dom-items.md index 0d3dbd3fb..9166f5a40 100644 --- a/blog_posts/javascript-store-dom-items.md +++ b/blog_posts/javascript-store-dom-items.md @@ -2,6 +2,7 @@ title: "Tip: Minimize DOM access" type: tip tags: javascript,browser +expertise: intermediate author: chalarangelo cover: blog_images/armchair.jpg excerpt: Increase your JavaScript code's performance when working with the DOM by leveraging this simple trick. diff --git a/blog_posts/javascript-string-immutability.md b/blog_posts/javascript-string-immutability.md index 9b0b86900..ec4a6f8ac 100644 --- a/blog_posts/javascript-string-immutability.md +++ b/blog_posts/javascript-string-immutability.md @@ -2,6 +2,7 @@ title: Are JavaScript strings immutable? type: question tags: javascript,string,type +expertise: intermediate author: chalarangelo cover: blog_images/purple-sunset.jpg excerpt: When it comes to immutability, many developers have trouble wrapping their head around JavaScript strings. Yet they're not as complicated as you might expect. diff --git a/blog_posts/javascript-swap-two-variables.md b/blog_posts/javascript-swap-two-variables.md index e56fe1960..aa7199b40 100644 --- a/blog_posts/javascript-swap-two-variables.md +++ b/blog_posts/javascript-swap-two-variables.md @@ -2,6 +2,7 @@ title: "Tip: How to swap two variables in JavaScript" type: tip tags: javascript,array,variables +expertise: intermediate author: chalarangelo cover: blog_images/mountain-lake-2.jpg excerpt: Learn how to swap the values of two variables in JavaScript using a single line of ES6 code. diff --git a/blog_posts/javascript-switch-object.md b/blog_posts/javascript-switch-object.md index 3bfdd4da6..5c0de7ee0 100644 --- a/blog_posts/javascript-switch-object.md +++ b/blog_posts/javascript-switch-object.md @@ -2,6 +2,7 @@ title: Replacing JavaScript switch statement with object literals type: story tags: javascript,object +expertise: intermediate author: chalarangelo cover: blog_images/rocky-lake.jpg excerpt: JavaScript's `switch` statement often feels hard to remember and a little bit out of place. Maybe it's time to use object literals, instead. diff --git a/blog_posts/javascript-sync-async.md b/blog_posts/javascript-sync-async.md index 119cd1980..67579e7f5 100644 --- a/blog_posts/javascript-sync-async.md +++ b/blog_posts/javascript-sync-async.md @@ -2,6 +2,7 @@ title: What is the difference between synchronous and asynchronous code in JavaScript? type: question tags: javascript,function,promise +expertise: intermediate author: chalarangelo cover: blog_images/pineapple-on-green.jpg excerpt: Understanding the differences between synchronous and asynchronous code is a crucial piece of knowledge for every web developer. diff --git a/blog_posts/javascript-target-blank.md b/blog_posts/javascript-target-blank.md index fb97ea05a..b82dba315 100644 --- a/blog_posts/javascript-target-blank.md +++ b/blog_posts/javascript-target-blank.md @@ -2,6 +2,7 @@ title: 'Tip: Protect your users from malicious websites when using target="_blank"' type: tip tags: javascript,browser,security +expertise: intermediate author: chalarangelo cover: blog_images/laptop-with-code.jpg excerpt: Opening a link in a new tab comes with a security vulnerability that you may not be aware of. Protect your users with this simple trick. diff --git a/blog_posts/javascript-ternary-operator.md b/blog_posts/javascript-ternary-operator.md index baa6c5a4c..5a0397bf5 100644 --- a/blog_posts/javascript-ternary-operator.md +++ b/blog_posts/javascript-ternary-operator.md @@ -2,6 +2,7 @@ title: What is the ternary operator and how do I use it? type: question tags: javascript,condition +expertise: intermediate author: maciv cover: blog_images/red-succulent.jpg excerpt: Learn everything you need to know about the conditional (ternary) operator and how to use it in JavaScript. diff --git a/blog_posts/javascript-this.md b/blog_posts/javascript-this.md index 5f704bb2f..eeaac894a 100644 --- a/blog_posts/javascript-this.md +++ b/blog_posts/javascript-this.md @@ -2,6 +2,7 @@ title: Understanding the "this" keyword in JavaScript type: story tags: javascript,function,object +expertise: intermediate author: chalarangelo cover: blog_images/u-got-this.jpg excerpt: JavaScript's `this` keyword is a source of confusion for many beginners and veterans alike. Learn how it works in different scenarios and start using it correctly. diff --git a/blog_posts/javascript-truthy-falsy-values.md b/blog_posts/javascript-truthy-falsy-values.md index 9688f2660..29a22312f 100644 --- a/blog_posts/javascript-truthy-falsy-values.md +++ b/blog_posts/javascript-truthy-falsy-values.md @@ -2,6 +2,7 @@ title: What are truthy and falsy values in JavaScript? type: question tags: javascript,type,comparison +expertise: intermediate author: chalarangelo cover: blog_images/little-bird.jpg excerpt: JavaScript uses type coercion in Boolean contexts, resulting in truthy or falsy values. Get a hang of how it all works in this quick guide. diff --git a/blog_posts/javascript-undeclared-undefined-null.md b/blog_posts/javascript-undeclared-undefined-null.md index 52a093176..2262d9b92 100644 --- a/blog_posts/javascript-undeclared-undefined-null.md +++ b/blog_posts/javascript-undeclared-undefined-null.md @@ -2,6 +2,7 @@ title: What's the difference between undeclared, undefined and null in JavaScript? type: question tags: javascript,type +expertise: intermediate author: chalarangelo cover: blog_images/river-houses.jpg excerpt: JavaScript has three different empty states for variables. Learn their differences and how you can check for each one. diff --git a/blog_posts/javascript-use-strict.md b/blog_posts/javascript-use-strict.md index bd0c56b95..36d934354 100644 --- a/blog_posts/javascript-use-strict.md +++ b/blog_posts/javascript-use-strict.md @@ -2,6 +2,7 @@ title: What does 'use strict' do and what are some of the key benefits to using it? type: question tags: javascript,function,object +expertise: intermediate author: chalarangelo cover: blog_images/palm-tree-house.jpg excerpt: JavaScript's strict mode can make your code faster, cleaner and more secure. diff --git a/blog_posts/javascript-value-as-number.md b/blog_posts/javascript-value-as-number.md index dd87a3d17..110628f28 100644 --- a/blog_posts/javascript-value-as-number.md +++ b/blog_posts/javascript-value-as-number.md @@ -2,6 +2,7 @@ title: "Tip: You can get the value of an input element as a number" type: tip tags: javascript,browser,input +expertise: intermediate author: chalarangelo cover: blog_images/mac-and-coffee.jpg excerpt: Ever wanted to get the value of an HTML input element as a number? Learn an easy way to do it with this handy trick. diff --git a/blog_posts/javascript-value-not-equal-to-itself.md b/blog_posts/javascript-value-not-equal-to-itself.md index 01f5bf4a2..76e79652e 100644 --- a/blog_posts/javascript-value-not-equal-to-itself.md +++ b/blog_posts/javascript-value-not-equal-to-itself.md @@ -2,6 +2,7 @@ title: What is the only value not equal to itself in JavaScript? type: question tags: javascript,type,comparison +expertise: intermediate author: chalarangelo cover: blog_images/eagle.jpg excerpt: Did you know there's a JavaScript value that's not equal to itself? diff --git a/blog_posts/javascript-var-let-const.md b/blog_posts/javascript-var-let-const.md index e9c71349e..09fe01dec 100644 --- a/blog_posts/javascript-var-let-const.md +++ b/blog_posts/javascript-var-let-const.md @@ -2,6 +2,7 @@ title: What are the differences between var, let and const in JavaScript? type: question tags: javascript,type,variable +expertise: intermediate author: chalarangelo cover: blog_images/highlands.jpg excerpt: JavaScript variables can be declared a handful of ways. However, they're not all created equal and understanding their differences can drastically change the way you code. diff --git a/blog_posts/javascript-variable-hoisting.md b/blog_posts/javascript-variable-hoisting.md index c9906facf..aac66517a 100644 --- a/blog_posts/javascript-variable-hoisting.md +++ b/blog_posts/javascript-variable-hoisting.md @@ -2,6 +2,7 @@ title: What is hoisting in JavaScript? type: question tags: javascript,type,variable +expertise: intermediate author: chalarangelo cover: blog_images/boat-port.jpg excerpt: One of the most commonly asked JavaScript interview questions is about hoisting. It's also a concept that might require some getting used to, so read our guide to learn more. diff --git a/blog_posts/javascript-variable-scope.md b/blog_posts/javascript-variable-scope.md index fdd6ee4ad..ce033bcbd 100644 --- a/blog_posts/javascript-variable-scope.md +++ b/blog_posts/javascript-variable-scope.md @@ -2,6 +2,7 @@ title: Understanding JavaScript variables and scopes type: story tags: javascript,type,variable +expertise: intermediate author: chalarangelo cover: blog_images/periscope.jpg excerpt: JavaScript developers often get confused by JavaScript's variables and scope. Here's a quick guide to understanding and remembering everything related to these concepts. diff --git a/blog_posts/javascript-void-links.md b/blog_posts/javascript-void-links.md index b1e7b9eba..b363cc25e 100644 --- a/blog_posts/javascript-void-links.md +++ b/blog_posts/javascript-void-links.md @@ -2,6 +2,7 @@ title: "Tip: Avoid \"javascript:void(0)\" for empty links" type: tip tags: javascript,browser,accessibility +expertise: intermediate author: chalarangelo cover: blog_images/white-flower.jpg excerpt: There are various ways to create an empty link, but some options are more appropriate than others. Learn the best way to handle empty links with this quick tip. diff --git a/blog_posts/js-array-min-max.md b/blog_posts/js-array-min-max.md index cfbc96db7..a22c82660 100644 --- a/blog_posts/js-array-min-max.md +++ b/blog_posts/js-array-min-max.md @@ -2,6 +2,7 @@ title: "Tip: Min and max value in a JavaScript array" type: tip tags: javascript,array,math +expertise: intermediate author: chalarangelo cover: blog_images/little-tree.jpg excerpt: When working with numeric arrays in JavaScript, you might find yourself in need of finding the minimum or maximum value. Here's a quick and easy way to do it. diff --git a/blog_posts/js-array-sorting-shorthand.md b/blog_posts/js-array-sorting-shorthand.md index 646c7fc3e..d79055fdd 100644 --- a/blog_posts/js-array-sorting-shorthand.md +++ b/blog_posts/js-array-sorting-shorthand.md @@ -2,6 +2,7 @@ title: "Tip: JavaScript array sorting shorthand" type: tip tags: javascript,array +expertise: intermediate author: maciv cover: blog_images/apples.jpg excerpt: Learn how to quickly write code to sort JavaScript arrays with this handy one-liner. diff --git a/blog_posts/js-callbacks.md b/blog_posts/js-callbacks.md index 5b0ba1b83..1dedfbfd6 100644 --- a/blog_posts/js-callbacks.md +++ b/blog_posts/js-callbacks.md @@ -2,6 +2,7 @@ title: What is a callback function? type: question tags: javascript,function +expertise: intermediate author: chalarangelo cover: blog_images/rabbit-call.jpg excerpt: JavaScript uses callback functions in various places for different purposes. From event listeners to asynchronous operations, they are an invaluable tool you need to master. diff --git a/blog_posts/js-data-structures-binary-search-tree.md b/blog_posts/js-data-structures-binary-search-tree.md index 29b9cc443..809fb6880 100644 --- a/blog_posts/js-data-structures-binary-search-tree.md +++ b/blog_posts/js-data-structures-binary-search-tree.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Binary Search Tree type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-4.jpg excerpt: A binary search tree is a data structure consisting of a set of ordered linked nodes representing a hierarchical tree structure, in which each node can have at most two children. diff --git a/blog_posts/js-data-structures-binary-tree.md b/blog_posts/js-data-structures-binary-tree.md index aad24b437..3c2e24ae7 100644 --- a/blog_posts/js-data-structures-binary-tree.md +++ b/blog_posts/js-data-structures-binary-tree.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Binary Tree type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-3.jpg excerpt: A binary tree is a data structure consisting of a set of linked nodes representing a hierarchical tree structure, in which each node can have at most two children. diff --git a/blog_posts/js-data-structures-doubly-linked-list.md b/blog_posts/js-data-structures-doubly-linked-list.md index b315f46f7..2fba45b26 100644 --- a/blog_posts/js-data-structures-doubly-linked-list.md +++ b/blog_posts/js-data-structures-doubly-linked-list.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Doubly Linked List type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-4.jpg excerpt: A doubly linked list is a linear data structure where each element points both to the next and the previous one. diff --git a/blog_posts/js-data-structures-graph.md b/blog_posts/js-data-structures-graph.md index 0233e03c9..595350540 100644 --- a/blog_posts/js-data-structures-graph.md +++ b/blog_posts/js-data-structures-graph.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Graph type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-1.jpg excerpt: A graph is a data structure consisting of a set of vertices connected by a set of edges. diff --git a/blog_posts/js-data-structures-linked-list.md b/blog_posts/js-data-structures-linked-list.md index fe9bee8ea..767714d2a 100644 --- a/blog_posts/js-data-structures-linked-list.md +++ b/blog_posts/js-data-structures-linked-list.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Linked List type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-3.jpg excerpt: A linked list is a linear data structure where each element points to the next. diff --git a/blog_posts/js-data-structures-queue.md b/blog_posts/js-data-structures-queue.md index dcc3c30c9..7f87de27c 100644 --- a/blog_posts/js-data-structures-queue.md +++ b/blog_posts/js-data-structures-queue.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Queue type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-2.jpg excerpt: A queue is a linear data structure which follows a first in, first out (FIFO) order of operations. diff --git a/blog_posts/js-data-structures-stack.md b/blog_posts/js-data-structures-stack.md index c647b84d9..a991caca4 100644 --- a/blog_posts/js-data-structures-stack.md +++ b/blog_posts/js-data-structures-stack.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Stack type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-1.jpg excerpt: A stack is a linear data structure which follows a last in, first out (LIFO) order of operations. diff --git a/blog_posts/js-data-structures-tree.md b/blog_posts/js-data-structures-tree.md index 94f2b856c..ecbe50335 100644 --- a/blog_posts/js-data-structures-tree.md +++ b/blog_posts/js-data-structures-tree.md @@ -2,6 +2,7 @@ title: JavaScript Data Structures - Tree type: story tags: javascript,object,class,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-2.jpg excerpt: A tree is a data structure consisting of a set of linked nodes representing a hierarchical tree structure. diff --git a/blog_posts/js-map-vs-object.md b/blog_posts/js-map-vs-object.md index 5d97b7dda..31bad6e52 100644 --- a/blog_posts/js-map-vs-object.md +++ b/blog_posts/js-map-vs-object.md @@ -2,6 +2,7 @@ title: What are the differences between Maps and objects in JavaScript? type: question tags: javascript,object +expertise: intermediate author: chalarangelo cover: blog_images/tent-stars.jpg excerpt: Maps and objects are very similar, but they have some differences that can help you decide which one better fits your use-case. diff --git a/blog_posts/js-native-data-structures.md b/blog_posts/js-native-data-structures.md index 363358ad6..805f515af 100644 --- a/blog_posts/js-native-data-structures.md +++ b/blog_posts/js-native-data-structures.md @@ -2,6 +2,7 @@ title: Native JavaScript Data Structures type: story tags: javascript,object,array +expertise: intermediate author: chalarangelo cover: blog_images/purple-flower-macro-2.jpg excerpt: JavaScript provides a handful of native data structures that you can start using in your code right now. diff --git a/blog_posts/js-object-freeze-vs-seal.md b/blog_posts/js-object-freeze-vs-seal.md index b2f247b47..992aaf374 100644 --- a/blog_posts/js-object-freeze-vs-seal.md +++ b/blog_posts/js-object-freeze-vs-seal.md @@ -2,6 +2,7 @@ title: What is the difference between Object.freeze() and Object.seal() in JavaScript? type: question tags: javascript,object +expertise: intermediate author: chalarangelo cover: blog_images/frozen-globe.jpg excerpt: Both `Object.freeze()` and `Object.seal()` serve a similar purpose, but there's one key difference you need to remember. diff --git a/blog_posts/js-remove-array-duplicates.md b/blog_posts/js-remove-array-duplicates.md index 7d9236152..89cc18198 100644 --- a/blog_posts/js-remove-array-duplicates.md +++ b/blog_posts/js-remove-array-duplicates.md @@ -2,6 +2,7 @@ title: "Tip: Remove duplicates from a JavaScript array" type: tip tags: javascript,array +expertise: intermediate author: chalarangelo cover: blog_images/architectural.jpg excerpt: Easily remove duplicates from a JavaScript array using the built-in `Set` object. diff --git a/blog_posts/js-static-instance-methods.md b/blog_posts/js-static-instance-methods.md index 5a9a06de1..003ec87dc 100644 --- a/blog_posts/js-static-instance-methods.md +++ b/blog_posts/js-static-instance-methods.md @@ -2,6 +2,7 @@ title: What is the difference between static and instance methods? type: question tags: javascript,object,function,class +expertise: intermediate author: chalarangelo cover: blog_images/lake-runner.jpg excerpt: Static and instance methods are pretty easy to distinguish and serve different purposes. Learn all about them in this article. diff --git a/blog_posts/lazy-loading-images.md b/blog_posts/lazy-loading-images.md index 45db13cb0..aef306526 100644 --- a/blog_posts/lazy-loading-images.md +++ b/blog_posts/lazy-loading-images.md @@ -2,6 +2,7 @@ title: "Tip: Lazy load images in HTML" type: tip tags: webdev,html,image +expertise: intermediate author: chalarangelo cover: blog_images/bridge.jpg excerpt: Did you know you can use a native HTML attribute to add lazy load to images? Learn all you need to know with this quick tip. diff --git a/blog_posts/nodejs-chrome-debugging.md b/blog_posts/nodejs-chrome-debugging.md index abde9c79a..bb12546cc 100644 --- a/blog_posts/nodejs-chrome-debugging.md +++ b/blog_posts/nodejs-chrome-debugging.md @@ -2,6 +2,7 @@ title: "Tip: Debugging Node.js using Chrome Developer Tools" type: tip tags: javascript,node,debugging +expertise: intermediate author: chalarangelo cover: blog_images/bug.jpg excerpt: Did you know you can use Chrome Developer Tools to debug your Node.js code? Find out how in this short guide. diff --git a/blog_posts/password-autocomplete-suggestion.md b/blog_posts/password-autocomplete-suggestion.md index 3022aea87..02a4d7d22 100644 --- a/blog_posts/password-autocomplete-suggestion.md +++ b/blog_posts/password-autocomplete-suggestion.md @@ -2,6 +2,7 @@ title: "Tip: Adding autocomplete to a password field" type: tip tags: webdev +expertise: intermediate author: chalarangelo cover: blog_images/padlocks.jpg excerpt: Use the HTML `autocomplete` attribute to create more secure and accessible password fields. diff --git a/blog_posts/perfect-css-transition-duration.md b/blog_posts/perfect-css-transition-duration.md index 963994eb2..47e92086d 100644 --- a/blog_posts/perfect-css-transition-duration.md +++ b/blog_posts/perfect-css-transition-duration.md @@ -2,6 +2,7 @@ title: "Tip: The perfect duration for CSS transitions" type: tip tags: css,interactivity,visual,animation +expertise: intermediate author: chalarangelo cover: blog_images/perfect-timing.jpg excerpt: Learn how to make your CSS transitions feel perfect when users interact with elements on the page with this simple tip. diff --git a/blog_posts/prefetching-resources.md b/blog_posts/prefetching-resources.md index 60a75fc9c..0f41be262 100644 --- a/blog_posts/prefetching-resources.md +++ b/blog_posts/prefetching-resources.md @@ -2,6 +2,7 @@ title: "Tip: Prefetching resources in the browser" type: tip tags: webdev,html,browser +expertise: intermediate author: chalarangelo cover: blog_images/playing-fetch.jpg excerpt: Resource prefetching is a great technique to improve perceived page speed on your website and one that requires little to no effort. Learn how to use it today. diff --git a/blog_posts/python-bare-except.md b/blog_posts/python-bare-except.md index f4c6adb53..ef9aabd8f 100644 --- a/blog_posts/python-bare-except.md +++ b/blog_posts/python-bare-except.md @@ -2,6 +2,7 @@ title: "Tip: Avoid using bare except in Python" type: tip tags: python,error +expertise: intermediate author: maciv cover: blog_images/dark-cloud.jpg excerpt: It's generally not a good idea to use bare `except` clause in Python, but do you know why? diff --git a/blog_posts/python-dict-getkey-vs-dictkey.md b/blog_posts/python-dict-getkey-vs-dictkey.md index 5f3843432..4df92b1a4 100644 --- a/blog_posts/python-dict-getkey-vs-dictkey.md +++ b/blog_posts/python-dict-getkey-vs-dictkey.md @@ -2,6 +2,7 @@ title: "Tip: You should use dict.get(key) instead of dict[key]" type: tip tags: python,dictionary +expertise: intermediate author: maciv cover: blog_images/fruit-feast.jpg excerpt: Learn the difference between two common ways to access values in Python dictionaries and level up your code today. diff --git a/blog_posts/python-file-close.md b/blog_posts/python-file-close.md index 251911e9c..514f9b6b0 100644 --- a/blog_posts/python-file-close.md +++ b/blog_posts/python-file-close.md @@ -2,6 +2,7 @@ title: How to correctly close files in Python type: story tags: python,file +expertise: intermediate author: maciv cover: blog_images/flower-pond.jpg excerpt: When working with files in Python, it's important to ensure that the file is closed correctly. Here are a couple of ways to do that. diff --git a/blog_posts/python-fstrings-str-format.md b/blog_posts/python-fstrings-str-format.md index 9415517cc..36c2526dd 100644 --- a/blog_posts/python-fstrings-str-format.md +++ b/blog_posts/python-fstrings-str-format.md @@ -2,6 +2,7 @@ title: "Tip: 2 ways to format a string in Python" type: tip tags: python,string +expertise: intermediate author: maciv cover: blog_images/feathers.jpg excerpt: Learn two ways to format a string in Python with this quick tip. diff --git a/blog_posts/python-identity-equality.md b/blog_posts/python-identity-equality.md index 9c9a656a4..fad7a9db0 100644 --- a/blog_posts/python-identity-equality.md +++ b/blog_posts/python-identity-equality.md @@ -2,6 +2,7 @@ title: What is the difference between Python's equality operators? type: question tags: python,type,comparison +expertise: intermediate author: maciv cover: blog_images/umbrellas.jpg excerpt: Python provides two distinct comparison operators for different task. Stop mixing them up using this quick guide. diff --git a/blog_posts/python-lists-tuples.md b/blog_posts/python-lists-tuples.md index e105bd53d..9b600d140 100644 --- a/blog_posts/python-lists-tuples.md +++ b/blog_posts/python-lists-tuples.md @@ -2,6 +2,7 @@ title: What is the difference between lists and tuples in Python? type: question tags: python,list +expertise: intermediate author: chalarangelo cover: blog_images/red-mountain.jpg excerpt: Learn how Python's lists and tuples are different and level up your code today. diff --git a/blog_posts/python-lowercase.md b/blog_posts/python-lowercase.md index b8accd057..379b242b4 100644 --- a/blog_posts/python-lowercase.md +++ b/blog_posts/python-lowercase.md @@ -2,6 +2,7 @@ title: How do I convert a string to lowercase in Python? type: question tags: python,string +expertise: intermediate author: maciv cover: blog_images/type-stamps.jpg excerpt: Learn of the two different way to convert a string to lowercase in Python and understand when you should use each one with this quick guide. diff --git a/blog_posts/python-mutable-default-arguments.md b/blog_posts/python-mutable-default-arguments.md index 20aa7fa40..fcb6e8048 100644 --- a/blog_posts/python-mutable-default-arguments.md +++ b/blog_posts/python-mutable-default-arguments.md @@ -2,6 +2,7 @@ title: "Tip: Watch out for mutable default arguments in Python" type: tip tags: python,function +expertise: intermediate author: maciv cover: blog_images/goat-wooden-cottage.jpg excerpt: Mutable default arguments can trip up Python beginners and veterans alike. Here's a quick workaround to deal with them. diff --git a/blog_posts/python-named-tuples.md b/blog_posts/python-named-tuples.md index f0242fe85..f2e8eeb4d 100644 --- a/blog_posts/python-named-tuples.md +++ b/blog_posts/python-named-tuples.md @@ -2,6 +2,7 @@ title: What are named tuples in Python? type: question tags: python,list,dictionary +expertise: intermediate author: maciv cover: blog_images/mask-quiet.jpg excerpt: Understand Python's named tuples and start using them in your projects today. diff --git a/blog_posts/python-slice-assignment.md b/blog_posts/python-slice-assignment.md index 0dd0e9df0..a393498c1 100644 --- a/blog_posts/python-slice-assignment.md +++ b/blog_posts/python-slice-assignment.md @@ -2,6 +2,7 @@ title: Understanding Python's slice assignment type: story tags: python,list +expertise: intermediate author: maciv cover: blog_images/sliced-fruits.jpg excerpt: Learn everything you need to know about Python's slice assignment with this handy guide. diff --git a/blog_posts/python-slice-notation.md b/blog_posts/python-slice-notation.md index 94e8c47cd..d26cfe5c5 100644 --- a/blog_posts/python-slice-notation.md +++ b/blog_posts/python-slice-notation.md @@ -2,6 +2,7 @@ title: Understanding Python's slice notation type: story tags: python,list +expertise: intermediate author: maciv cover: blog_images/sliced-fruits.jpg excerpt: Learn everything you need to know about Python's slice notation with this handy guide. diff --git a/blog_posts/python-sortedlist-vs-list-sort.md b/blog_posts/python-sortedlist-vs-list-sort.md index 4341c8ca0..254d8ccfc 100644 --- a/blog_posts/python-sortedlist-vs-list-sort.md +++ b/blog_posts/python-sortedlist-vs-list-sort.md @@ -2,6 +2,7 @@ title: What is the difference between list.sort() and sorted() in Python? type: question tags: python,list +expertise: intermediate author: maciv cover: blog_images/duck-plants.jpg excerpt: Learn the difference between Python's built-in list sorting methods and when one is preferred over the other. diff --git a/blog_posts/python-swap-variables.md b/blog_posts/python-swap-variables.md index 97d92be8b..fe7867567 100644 --- a/blog_posts/python-swap-variables.md +++ b/blog_posts/python-swap-variables.md @@ -2,6 +2,7 @@ title: 3 ways to swap two variables in Python type: story tags: python,variables +expertise: intermediate author: maciv cover: blog_images/leaves-read.jpg excerpt: Learn 3 easy ways to swap the values of two variables in Python. diff --git a/blog_posts/python-trim-whitespace.md b/blog_posts/python-trim-whitespace.md index 3afced727..ed0b9cb0e 100644 --- a/blog_posts/python-trim-whitespace.md +++ b/blog_posts/python-trim-whitespace.md @@ -2,6 +2,7 @@ title: How do I trim whitespace from a string in Python? type: question tags: python,string +expertise: intermediate author: maciv cover: blog_images/organizer.jpg excerpt: Oftentimes you might need to trim whitespace from a string in Python. Learn of three different way to do this in this short guide. diff --git a/blog_posts/react-conditional-classname.md b/blog_posts/react-conditional-classname.md index e7b58b304..e51f1a385 100644 --- a/blog_posts/react-conditional-classname.md +++ b/blog_posts/react-conditional-classname.md @@ -2,6 +2,7 @@ title: "Tip: React conditional className, empty strings and null" type: tip tags: react,components +expertise: intermediate author: maciv cover: blog_images/succulent-red-light.jpg excerpt: When developing React components, you might often need to conditionally apply a className. Learn how to handle empty classNames correctly using this handy tip. diff --git a/blog_posts/react-proptypes-objectof-vs-shape.md b/blog_posts/react-proptypes-objectof-vs-shape.md index 9d08ed180..aeeebe1ea 100644 --- a/blog_posts/react-proptypes-objectof-vs-shape.md +++ b/blog_posts/react-proptypes-objectof-vs-shape.md @@ -2,6 +2,7 @@ title: React PropTypes - objectOf vs shape type: story tags: react,components,proptypes +expertise: intermediate author: chalarangelo cover: blog_images/shapes.jpg excerpt: Learn the differences between `PropTypes.objectOf()` and `PropTypes.shape()` and where to use each one with this quick guide. diff --git a/blog_posts/react-redux-readable-reducers.md b/blog_posts/react-redux-readable-reducers.md index e40bc9811..eb5e0ede5 100644 --- a/blog_posts/react-redux-readable-reducers.md +++ b/blog_posts/react-redux-readable-reducers.md @@ -2,6 +2,7 @@ title: Writing readable reducers in Redux type: story tags: react,logic +expertise: intermediate author: chalarangelo cover: blog_images/beach-from-above.jpg excerpt: When working with state in your code, you often run into issues with maintaining complexity and readability. Oftentimes, these issues are easily fixable. diff --git a/blog_posts/react-rendering-basics.md b/blog_posts/react-rendering-basics.md index 4818c438c..2a41c3ae9 100644 --- a/blog_posts/react-rendering-basics.md +++ b/blog_posts/react-rendering-basics.md @@ -2,6 +2,7 @@ title: React rendering basics type: story tags: react,render +expertise: intermediate author: chalarangelo cover: blog_images/comic-glasses.jpg excerpt: Take a deeper dive into React's rendering process and understand the basics behind the popular JavaScript framework. diff --git a/blog_posts/react-rendering-optimization.md b/blog_posts/react-rendering-optimization.md index 335d0fdf8..65fd2eeab 100644 --- a/blog_posts/react-rendering-optimization.md +++ b/blog_posts/react-rendering-optimization.md @@ -2,6 +2,7 @@ title: React rendering optimization type: story tags: react,render +expertise: intermediate author: chalarangelo cover: blog_images/comic-glasses.jpg excerpt: Take a deeper dive into React's rendering process and understand how to make small yet powerful tweaks to optimize performance. diff --git a/blog_posts/react-rendering-state.md b/blog_posts/react-rendering-state.md index b3af50adf..ee98fae6d 100644 --- a/blog_posts/react-rendering-state.md +++ b/blog_posts/react-rendering-state.md @@ -2,6 +2,7 @@ title: React rendering state type: story tags: react,render +expertise: intermediate author: chalarangelo cover: blog_images/comic-glasses.jpg excerpt: Take a deeper dive into React's rendering process and understand the role of the Context API and Redux in it. diff --git a/blog_posts/react-selected-option.md b/blog_posts/react-selected-option.md index 4cec022ed..55e73efc3 100644 --- a/blog_posts/react-selected-option.md +++ b/blog_posts/react-selected-option.md @@ -2,6 +2,7 @@ title: How can I set the value of a select input in React? type: question tags: react,components,input +expertise: intermediate author: maciv cover: blog_images/two-doors.jpg excerpt: Learn of all the different ways to set the value of a selected input in React with this quick guide. diff --git a/blog_posts/react-use-interval-explained.md b/blog_posts/react-use-interval-explained.md index c405baf03..e36f486f6 100644 --- a/blog_posts/react-use-interval-explained.md +++ b/blog_posts/react-use-interval-explained.md @@ -2,6 +2,7 @@ title: Write a useInterval hook in React type: story tags: react,hooks,effect +expertise: intermediate author: chalarangelo cover: blog_images/clock.jpg excerpt: Wrapping your mind around React hooks and how they interact with `setInterval()` can be difficult. Here's a guide to get you started. diff --git a/blog_posts/react-use-state-with-label.md b/blog_posts/react-use-state-with-label.md index f6085ec19..4cf5666dd 100644 --- a/blog_posts/react-use-state-with-label.md +++ b/blog_posts/react-use-state-with-label.md @@ -2,6 +2,7 @@ title: "Tip: Label your useState values in React developer tools" type: tip tags: react,hooks +expertise: intermediate author: chalarangelo cover: blog_images/bunny-poster.jpg excerpt: When working with multiple `useState` hooks in React, things can get a bit complicated while debugging. Luckily, there's an easy way to label these values. diff --git a/blog_posts/regexp-cheatsheet.md b/blog_posts/regexp-cheatsheet.md index 695607ea7..115203f88 100644 --- a/blog_posts/regexp-cheatsheet.md +++ b/blog_posts/regexp-cheatsheet.md @@ -2,6 +2,7 @@ title: Regular Expressions Cheat Sheet type: cheatsheet tags: javascript,string,regexp,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/tools.jpg excerpt: Regular expressions are a very useful tool in a variety of situations. Save this cheatsheet for any time you need to look up their syntax and speed up your development. diff --git a/blog_posts/responsive-favicon-dark-mode.md b/blog_posts/responsive-favicon-dark-mode.md index 1891cbbac..83b79ed6c 100644 --- a/blog_posts/responsive-favicon-dark-mode.md +++ b/blog_posts/responsive-favicon-dark-mode.md @@ -2,6 +2,7 @@ title: How can I create a custom responsive favicon for dark mode? type: question tags: css,visual +expertise: intermediate author: chalarangelo cover: blog_images/dark-mode.jpg excerpt: Learn how to create a custom responsive favicon that can adapt its color palette for dark mode with this quick guide. diff --git a/blog_posts/reversed-list.md b/blog_posts/reversed-list.md index fb244aaff..b2dc07dc8 100644 --- a/blog_posts/reversed-list.md +++ b/blog_posts/reversed-list.md @@ -2,6 +2,7 @@ title: "Tip: Create a descending list of numbered items" type: tip tags: webdev,html +expertise: intermediate author: chalarangelo cover: blog_images/ancient-greek-building.jpg excerpt: Did you know there's an easy way to create a descending list of numbered items with pure HTML? Learn how with this handy tip. diff --git a/blog_posts/setup-python3-pip3-as-default.md b/blog_posts/setup-python3-pip3-as-default.md index ae0dfbd3a..7c3411bd6 100644 --- a/blog_posts/setup-python3-pip3-as-default.md +++ b/blog_posts/setup-python3-pip3-as-default.md @@ -2,6 +2,7 @@ title: "Tip: Set up Python 3 and pip 3 as default" type: tip tags: python,setup +expertise: intermediate author: chalarangelo cover: blog_images/avocado-slices.jpg excerpt: A very common problem when working with Python is having to remember the correct version. Luckily, there's an easy fix for that. diff --git a/blog_posts/terminal-shortcuts-cheatsheet.md b/blog_posts/terminal-shortcuts-cheatsheet.md index ef71a7d33..25d1afdb8 100644 --- a/blog_posts/terminal-shortcuts-cheatsheet.md +++ b/blog_posts/terminal-shortcuts-cheatsheet.md @@ -2,6 +2,7 @@ title: Bash Shortcuts Cheat Sheet type: cheatsheet tags: webdev,bash,cheatsheet +expertise: intermediate author: chalarangelo cover: blog_images/terminal.jpg excerpt: Maximize your productivity when working with a bash or other shell terminal by using these keyboard shortcuts. diff --git a/blog_posts/testing-async-react-components.md b/blog_posts/testing-async-react-components.md index a7f79e15f..858fbc290 100644 --- a/blog_posts/testing-async-react-components.md +++ b/blog_posts/testing-async-react-components.md @@ -2,6 +2,7 @@ title: Testing React components that update asynchronously with React Testing Library type: story tags: react,testing,event +expertise: intermediate author: maciv cover: blog_images/colorful-lounge.jpg excerpt: Testing React components that update asynchronously with React Testing Library is a common scenario. Learn how to deal with common issues and speed up your testing. diff --git a/blog_posts/testing-redux-connected-components.md b/blog_posts/testing-redux-connected-components.md index ffb6381d7..082594d55 100644 --- a/blog_posts/testing-redux-connected-components.md +++ b/blog_posts/testing-redux-connected-components.md @@ -2,6 +2,7 @@ title: Testing Redux-connected components with React Testing Library type: story tags: react,testing +expertise: intermediate author: chalarangelo cover: blog_images/sparkles.jpg excerpt: Testing Redux-connected components with React Testing Library is a very common scenario. Learn how to use this simple utility function to speed up your testing. diff --git a/blog_posts/testing-stateful-ui-components.md b/blog_posts/testing-stateful-ui-components.md index 1a3395582..94ac4ae00 100644 --- a/blog_posts/testing-stateful-ui-components.md +++ b/blog_posts/testing-stateful-ui-components.md @@ -2,6 +2,7 @@ title: An approach to testing stateful React components type: story tags: react,testing +expertise: intermediate author: chalarangelo cover: blog_images/lake-trees.jpg excerpt: Testing stateful React components is by no means a difficult task, but did you know there is an elegant solution that doesn't involve testing state directly? diff --git a/blog_posts/typographic-scale-basics.md b/blog_posts/typographic-scale-basics.md index f29a41da6..097d01c7b 100644 --- a/blog_posts/typographic-scale-basics.md +++ b/blog_posts/typographic-scale-basics.md @@ -2,6 +2,7 @@ title: Typographic scale basics type: story tags: css,webdev,typography +expertise: intermediate author: chalarangelo cover: blog_images/typography.jpg excerpt: Typography might seem intimidating, but you can quickly and easily create a simple typographic scale with this basic technique. diff --git a/blog_posts/zooming-accessibility-tips.md b/blog_posts/zooming-accessibility-tips.md index dea3b2755..76a2cb0f3 100644 --- a/blog_posts/zooming-accessibility-tips.md +++ b/blog_posts/zooming-accessibility-tips.md @@ -2,6 +2,7 @@ title: Why using maximum-scale can harm your page's accessibility type: story tags: webdev +expertise: intermediate author: chalarangelo cover: blog_images/camera-zoom.jpg excerpt: Using the viewport meta tag incorrectly can harm your website's accessibility. Learn how to prevent problems with this handy guide. diff --git a/snippet-template.md b/snippet-template.md index b01ec3363..77f745ba6 100644 --- a/snippet-template.md +++ b/snippet-template.md @@ -2,6 +2,7 @@ title: My amazing story type: story tags: javascript,webdev +expertise: intermediate author: chalarangelo cover: blog_images/my-image.jpg excerpt: A short summary of your story up to 180 characters long.