118 Blog Posts To Learn About Js
Let's learn about Js via these 118 free blog posts. They are ordered by HackerNoon reader engagement 2026-8-15 02:0:14 Author: hackernoon.com(查看原文) 阅读量:16 收藏

Let's learn about Js via these 118 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the Learn Repo or LearnRepo.com to find the most read blog posts about any technology.

"Not a real programming language" since 1995.

1. A Beginner's Guide to BFS and DFS in JavaScript

Learn Repo's image-28b138

Learn BFS and DFS, powerful algorithms to traverse and search data structures. Examples and step-by-step JavaScript code included.

2. Top 10 Javascript File Managers

Learn Repo's image-d94018

File management is a helpful tool in any business application. Here is an overview of the most functional, elegant, and popular JavaScript File Managers ready to be built into the client-server solution. Even if you do not have a direct need to work with files, you can borrow the classic file explorer interface for other tasks. For instance, there are some cases of the classic interface becoming the basis for a new web application in this article.

3. Understanding CORS: Why It's Important and How it Works

Learn Repo's image-81f5b

This article will explain what CORS is, how it works, and why it is important.

4. 5 Free JavaScript Spreadsheet Libraries in 2021

Learn Repo's image-4ea4c

Spreadsheet libraries are in high demand today. Such solutions are convenient as they offer ready-made applications, save the developers' time and the owners' money. They can be used in any business domain to deal with big amounts of data.

5. What Are the Challenges of Learning New JavaScript Frameworks? | GrapeCity JavaScript

Learn Repo's image-7eae2

Learn about the top challenges developer face when they are learning new JavaScript frameworks. See more from GrapeCity today.

6. What is GRASP? Information Expert and Creator Principles in JavaScript

Learn Repo's image-827c4

What is GRASP? Why do we need it? Information expert and creator principles using Javascript examples.

7. JavaScript Spread and Rest Operators: A Guide

Learn Repo's image-1dd4f

Understand Javascript Spread and rest operators

8. How to Use Screen Wake Lock API in React to Manage Screen Locking/Dimming in a Browser

Learn Repo's image-ce9e7

LIVE demo 🚀 on how to integrate the Screen Wake Lock API into any React application with automatic reacquisition of a lock using react-use-wake-lock.

9. How to Get Base64 Encoded Data from an HTML Image Element in JavaScript

Learn Repo's image-c419c

This tutorial teaches you how to get the Base64 encoded data of an image displayed in the HTML image element using JavaScript.

10. Top 10 Javascript File Managers to Use in 2022

Learn Repo's image-2f1928

A brief intro to 10 file managers for software developers

11. Solving the ATM problem with Dynamic Programming

Learn Repo's image-54c12

Solving ATM problem with Dynamic Programming

12. How to Manage Multithreaded Node JS Applications for Better Performance

Learn Repo's image-39492

In this post I'm going to show you how to potentially triple your Node application's performance by managing multiple threads.

13. How to Stop an Active Process on a Port

Learn Repo's image-e2fdd

It is common in Node.js and other languages to run a script on a certain port. These are steps to take to stop an active process on a port.

14. Cool JavaScript Libraries To Consider Using in 2023

Learn Repo's image-3e05d

dJavaScript libraries are incredibly useful tools for any web app developer. They’re designed for boosting the development process and adding extra functionality to your projects with just a few lines of code.

15. Exploring Tree Traversal in JavaScript: Inorder, Preorder, and Postorder With Examples

Learn Repo's image-1f0078

Explore tree traversal methods in JavaScript: Inorder, Preorder, and Postorder. Learn their differences and how to implement them. #JavaScript #TreeTraversal

16. The ATM Problem: Why the Greedy Algorithm Isn't an Optimal Solution

Learn Repo's image-12d8a

Solution to a popular Interview problem: Solve ATM task with Greedy Algorithm

17. How Does Node.js Achieve Concurrency?

Learn Repo's image-bf6408

Ever wondered how Node.js handles multiple requests despite being single threaded? Find out the secret to concurrency in Node.js and how the event loop works

18. The Right Way to Utilize Webpack for Bundling a HTML Page With CSS and JS

Learn Repo's image-cc3848

The new HTML Bundler plugin makes Webpack setup incredibly simple, as all the configuration happens in one place.

19. Understanding the Power of Proxy in JavaScript

Learn Repo's image-f8d6a8

A Proxy object is an object that wraps another object and intercepts fundamental operations on it, such as property access, assignment, and deletion

20. 4 Options to Add a Custom Theme for Frontend Applications

Learn Repo's image-61af08

Take a closer look at various options for how we can allow users to choose from various themes, as well as customize them for their needs.

21. How to Use Gulp to Protect Your Code

Learn Repo's image-b76398

In this post, we'll show you how to protect your code with Jscrambler while using Gulp with a guide on how to set it all up to streamline the process.

22. A Beginner's Guide to the Sliding Window Algorithm with JavaScript

Learn Repo's image-ef8ca8

Learn the basics of the Sliding Window algorithm in JavaScript. Discover how to optimize tasks with practical examples for efficient data processing.

23. How to Build a Newsletter Application with Email Automation via ReactJS and Firebase

Learn Repo's image-519558

NB: I saw I had this tutorial in my draft for close to 2 years now, I just decided to post it.

24. Throttling vs Debouncing in Javascript

Learn Repo's image-cf7f88

Throttling and debouncing, what are they? What is the difference and when and why should we use them in our own javascript-based programming projects?

25. How to Deploy a Serverless Node.js Application on Azure

Learn Repo's image-2f122

This article will guide beginners in software development on how to deploy a serverless Node.js application on Microsoft Azure.

26. Working With My First Web Component

Learn Repo's image-299118

My first time building a (very) simple web component.

27. How To Resize an Image Correctly in JavaScript

Learn Repo's image-c7fa48

JavaScript implementation of so-called Seam Carving algorithm for the content-aware image resizing and objects removal. Dynamic programming approach is applied

28. Redis and Node.JS: Learn the Basics

Learn Repo's image-bb3b5

Redis is a powerful piece of technology that lets us store data in memory. Let's look at how to use it with Node.JS

29. How to Add Prefix or Suffix to Each New Line in JavaScript

Learn Repo's image-aa0458

Learn how to add a prefix or suffix to each new line in JavaScript with our step-by-step tutorial. Create a user-friendly online tool using JS.

30. Algorithms and Data Structures Implemented in ES6 JavaScript

Learn Repo's image-3864e8

Hello Readers! I’ve launched JavaScript Algorithms and Data Structures repository on GitHub with a collection of classic algorithms and data-structures implemented in ES6 JavaScript with explanations and links to further readings and YouTube videos.

31. SOLID Principles in JavaScript: What Does the "L" Stand For?

Learn Repo's image-37d4d8

Hello, guys, this is the third part of SOLID Principles in JavaScript and if you haven't read the previous two (first part and second part), I highly recommend to read them first and coming back here.

32. Top 15 React Interview Questions & Answers You Need To Know in 2022

Learn Repo's image-9ad38

In this article, we'll go over some of the most common React interview questions and how to answer them.

33. How Libuv Thread Pool Can Boost Your Node JS Performance

Learn Repo's image-e3597

In this 5th instalment of my “Node JS Performance Optimizations” series, I show you how to increase Node JS performance with thread pool management. We achieve this by understanding how Libuv works, how the thread pool works and how to configure the number of threads based on your machine specs.

34. 10 Cool Data Table Libraries with Advanced Features

Learn Repo's image-218028

JavaScript is on the list of requirements for a position as a web developer in any IT company at the moment. It is hard to imagine building modern web applications without JavaScript. This programming language provides IT specialists with an effective and relatively easy way to create interactive applications able to comply with the tastes of any picky customer. The choice of the JS libraries and frameworks adds dedicated followers to this language.

35. 25+ Beginner Javascript Projects With Source Code on Github

Learn Repo's image-41dda8

A list of 25+ Javascript projects for beginners with source code available on Github. Easy Javascript projects for beginners.

36. Top 12 Lesser Known Tips for JavaScript Best Practices

Learn Repo's image-0994f8

There is a lot of information about different JS features. I want to tell you about equally useful, but less popular tips for working with this language!

37. Clean Code: Functions and Methods in TypeScript [Part 1]

Learn Repo's image-1862

Learn how to write cleaner code by avoiding common mistakes in functions and methods.

38. JS Arrow Functions for Newbies

Learn Repo's image-601918

Introduction to new ES6 javascript feature - Arrow Functions.

39. 7 jQuery-Free Admin Dashboard Templates Built with React, Vue or Angular

Learn Repo's image-b18308

Recently we decided to make our templates jQuery-free. Please enjoy this list of admin dashboard templates without jQuery dependencies.

40. Secure Your Next.js Apps with Jscrambler

Learn Repo's image-3d60b

In this article, we’ll look at how you can integrate Jscrambler into your Next.js app development workflow.

41. What Does "SyntaxError: Missing formal parameter" Mean?

Learn Repo's image-8b16c

SyntaxError missing formal parameter

42. Creating User Interfaces Using 'Variables'

Learn Repo's image-666308

UI series #1 ft. variables

43. Introduction and Setup of an AI Project for Web Devs with QwikJS

Learn Repo's image-1f4ed8

In this blog post, we start bootstrapping a web development project using Qwik and get things ready to incorporate AI tooling from OpenAI.

44. Best JavaScript Resources Collection: 2020 Edition 🚲

Learn Repo's image-e596f

These are my personal picks of learning JavaScript in 2020, I picked all of these resources myself, most of them are my favorites and I also used them while learning.

45. An Open-Source Firebase Alternative - Introducing Appwrite 0.7

Learn Repo's image-4ee848

We’re excited to announce the release of Appwrite 0.7, our biggest ever release. The new Appwrite version includes over 100 updates

46. Top Mistakes JavaScript Developers Make

Learn Repo's image-5d4eb

This article will show you some typical mistakes that almost every Javascript programmer has made during his career.

47. New JavaScript Features in 2022

Learn Repo's image-567e48

JavaScript is changing fast with a lot of new and exciting features to help us - developers write code better and better. Let's check these latest features.

48. The Best JavaScript Tools in 2022: An Essential Guide to Better Development

Learn Repo's image-97e298

A breakdown of the most important JS dev tools in 2022, including their most relevant tradeoffs, and some opinionated advice sprinkled on top.

49. Top 6 Material Design Dashboards

Learn Repo's image-008be

I won’t make the intro too long. I will shortly introduce you to the Material Framework and mention our traditional criteria for evaluating dashboards/admin templates.

50. HTML + CSS Practice Project: Website Slicing

Learn Repo's image-528dd

Here we will leave JS challenges for later, and we will focus on integrating the visual part of the frontend in a simple project.

51. JSNation Live 2020, the remote spin-off of a successful JavaScript conference

Learn Repo's image-5e04c

Would you like to know the future of the JavaScript ecosystem and get connected to a stellar crowd? To help you stay up-to-date on the latest JS tech, the GitNation team has come up with a new remote event taking place on June 18-19, 2020. JSNation Live, their 2-day event on all things JavaScript, will gather 25 thousand software engineers, making it the biggest JavaScript conference in the cloud.

52. Learn Fundamentals of JavaScript : Number Variable, Multiple Variables, Booleans, Strings

Learn Repo's image-2f406

After exams and lots of procrastination, I finally resumed my #100DaysOfCode journey with JavaScript

53. Accessible Custom File Upload

Learn Repo's image-7bec4

Learn how to create a custom, accessible file upload button using pure HTML, CSS, and JavaScript.

54. JavaScript: The Apocalyptic Dumpster Fire That Has Coders Begging it to Stop

Learn Repo's image-51afb8

The Frankensteinian Hodgepodge That Puts Mr. Burns' Smithers in Charge of the Starship Enterprise and Leaves Coders Screaming 'Wubba Lubba Dub Dub!'"

In a real

55. SOLID Principles in JavaScript: What Does the "O" Stand For?

Learn Repo's image-a7ebd8

Hello, guys. This is the second article about SOLID principles with Javascript examples. In my previous article I described what are patterns in general, what is SOLID and why we should use them. If you haven't read it, pls, read it now and continue read current article after the previous one.

56. How to Create a Simple A-Frame App with Plain HTML

Learn Repo's image-3426b8

57. Evaluating Conditional Statements in JavaScript

Learn Repo's image-876d88

Let's learn about the JavaScript conditional statements!

58. Backend Development 101: Prime Numbers and Multi-threading

Learn Repo's image-95be5

Recently, I have been trying to expand my knowledge as a backend developer. I want to understand solving problems at scale and also breaking down big tasks into little chunks of tasks.

59. How My Employer Forced Me To Learn JavaScript

Learn Repo's image-a5e4e

In my student years everybody around me mocked JavaScript. Being part of the tribe, I have never really tried to learn JavaScript. I used quick and dirty solutions, copied code from Stackoverflow, without really understanding it and hoped it will not break. It changed after my first full-time job.

60. Java / JavaScript: Differences Beyond the Name

Learn Repo's image-22a7a

Java and JavaScript...

Beyond the names that appear "similar," how else do these two programming languages differ from each other?

61. Python vs. JavaScript: A Comparative Review

Learn Repo's image-df5578

Python and JavaScript are two of the most used programming languages. Even though both are object-oriented programming languages, they have different scopes.

62. A Nullish Coalescing (in JS) Tutorial for Normal People

Learn Repo's image-bcabf

Nullish coalescing is a new feature that helps make that a whole lot easier. In this post, we’ll explain nullish coalescing.

63. Building Blocks of DOM Manipulation - Vanilla JS Tutorial (Part One)

Learn Repo's image-54b01

Learn the basics of DOM manipulation with Vanilla JS including set up, document.createElement(, .textContent, and more.

64. Making the Snake Game in your Browser: Practicum Coding Bootcamp

Learn Repo's image-50ce98

Want to make your own classic arcade game?

65. Understanding Optional Chaining in JavaScript

Learn Repo's image-2a2f8

Optional chaining is a modern language feature that allows you to safely navigate through and access deeply nested object properties.

66. How to Use console.log() Like a Pro: A Brief Guide

Learn Repo's image-20ef88

Using console.log() for JavaScript debugging is the most common practice among developers. But, there is more...

67. 20+ React Tools to Help You Become a More Productive Programmer

Learn Repo's image-a31ad8

The goal of this post is to provide you with tools you need to be more productive when developing React applications.

68. 10 Web Development Boosting Node.js Libraries and Frameworks

Learn Repo's image-eeb438

Take your Node.js skills to the next level with our top 10 library picks! Streamline workflows, optimize performance, and stay ahead of the competition

69. 19+ Javascript Plugins and Data Table Libraries to Make Your Life Easier

Learn Repo's image-cc1d

This time we want to introduce libraries for working with tables or grids, since tables are an important part of any great application.

70. 5 Data Visualization Widgets for Modern JavaScirpt Libraries

Learn Repo's image-ecf098

Data Visualisation is an incredibly important part of conveying information in the world. Getting the best widget types for Data Visualisation is a part of that

71. JSWorld Conference 2022: Part I

Learn Repo's image-05aa

JSWorld Conference is the number one JavaScript Conference in the world, and I share a summary of all the talks with you. Part I

Learn Repo's image-e471

A look at an API that makes it easier to work with cookies in the browser.

73. ​​Choosing Between SASS vs CSS Modules vs CSS-In-JS

Learn Repo's image-651318

How we chose our styling: ​​SASS vs CSS Modules vs CSS-In-JS

74. Eliminating Event Storms With Debouncing in JavaScript

Learn Repo's image-ed85b

Using debounce, the function will be executed only when a certain amount of time has passed since the last function call.

75. Introduction to JavaScript Statements

Learn Repo's image-18c7d8

JavaScript statements give us a energy to implement opposite forms of proof in a code. JavaScript provides us with several of them, all of that has a possess purpose and syntax. Among a many obvious examples we can find countenance statements, iteration statements, redeeming statements, and more

76. A Glance Into Amplication: Easy NodeJS App Development

Learn Repo's image-ff725

According to the Amplication website's introduction, it's a tool for creating the structure you want in NodeJS apps.

77. Node.js Inject: How to Conduct and Why to Use

Learn Repo's image-da791

Today, I would like to show you how to execute custom JS code in another Node.js process and to get a proper result. These are relatively simple code examples, which demonstrate basic ideas of native code calls with the help of Frida framework.

78. How To Create A "Night Mode" For Your Website

Learn Repo's image-9093e8

Are you interested in learning how to create a simple night mode for your website? In this article, I use jQuery and Bootstrap 5.

79. How to Use jQuery: An Introduction to the JavaScript Library

Learn Repo's image-51d13

jQuery is a JavaScript library that is used on your websites. jQuery is open source material that is used to make Javascript programming easier.

80. 5 Best JavaScript Templates for Business

Learn Repo's image-ae23e

Templates can significantly speed up the development process. Here are the 5 Best Javascript Templates - check them out!

81. A Prototype That Leverages Facial Expressions to Facilitate Non-vocal Communication

Learn Repo's image-8537b8

An introduction into some tools used to develop a facial expression detector as a means to communicate.

82. Function Calling in Generative AI: Mapping Prompts to Functions and Building Smart Applications

Learn Repo's image-f3b138

Function Calling in Generative AI, where prompts map to functions, unlocking the potential for intelligent and dynamic applications.

83. The Developer's Guide to Updating npm Packages

Learn Repo's image-7ccd88

A simple guide for updating for npm packages.

84. Mastering JavaScript Conditionals

Learn Repo's image-498b5

"Mastering Conditionals in JavaScript: A Comprehensive Guide with Example"

85. Mastering the Document Object Model (DOM)

Learn Repo's image-21deb8

In this blog post, we are going to deep dive into DOM and try to understand what a DOM is, and how it works.

86. The Event Loop Concept and Asynchronous Development in JavaScript

Learn Repo's image-88461

Responsiveness is usually achieved through the use of asynchronous functions. This means that you can let your code do several things at the same time.

87. Circle CI: How To Run Ruby and JavaScript Tests in Parallel

Learn Repo's image-4ddee

Configure the CI server to run parallel tests in the shortest CI build time. Ruby and JavaScript examples of parallel testing.

88. JS Destructuring For Newbies

Learn Repo's image-0bc67

The main superpower of destructuring is the ability to take apart an object or an array. So we can extract just the information we need.

89. SOLID Principles in JavaScript: What Does the "D" Stand For?

Learn Repo's image-8aaf3

Hello, guys, this is the last part of SOLID Principles in JavaScript and if you haven't read the previous three (first part, second part, third part, fourth part), I highly recommend to read them first and come back here.

90. Learn About JavaScript Closures: A Beginner's Guide

Learn Repo's image-31b5d

In this blog post, we will take a deep dive into how JavaScript functions really work. We’ll discuss concepts like higher-order functions (HOF), execution conte

91. How "This" Binding Works in JavaScript

Learn Repo's image-6efde

In this article, we will learn how "This" binding works in Javascript.

92. Mastering JavaScript Objects: A Comprehensive Guide

Learn Repo's image-0e829

Exploring Object Literals, Properties, Methods, and Object Destructuring, Custom constructors, Mechanism for inheritance and object, and Built-in Objects.

93. Everything You Need To Know About TypeScript

Learn Repo's image-ed4288

Mastering TypeScript: A Comprehensive Guide,From Fundamentals to Intermediate Techniques for Effective Development

94. How to Create a Web Component for Reveal.js

Learn Repo's image-832ec

Using web components to make it easier to build Reveal.js presentations.

95. The Axios Nightmare Is Over: Meet Axios-Fixed

Learn Repo's image-0d3f38

Axios was compromised in a major supply chain attack affecting 100M+ installs. Learn what happened and how to migrate safely to axios-fixed in minutes.

96. Tailwind CSS v4 Beta, New React Framework, BEST JavaScript Animations, and More - This Week in JS

Learn Repo's image-95a59

Today, we’ll take a look at the latest Tailwind CSS v4 Beta and explore Tuono’s Rust-powered backends.

97. Use Metho to Safely Add Dynamic Superpowers to JS Objects

Learn Repo's image-d6efa8

Metho allows you to safely 'monkey patch' any object with new capabilities and dynamic properties. Great for extending the functionality of native JS prototypes

98. AI Applications: Advanced Architecture Advice (AKA AAAA!)

Learn Repo's image-c6429

This post covers infrastructure improvement ideas for an existing AI application's architecture for better delivery, performance, and cost-reduction.

99. JavaScript Loop: The Best Practices to Have the Optimal Performance

Learn Repo's image-40ad48

JavaScript Loop is a fundamental part of any programming language, and JavaScript is no exception. JavaScript loop is a powerful tool that allows developers ...

100. From ES6 to ESNext: What Is Node.green?

Learn Repo's image-fad078

Node.green is a website that provides a comprehensive and easy-to-use resource for tracking the support for ECMAScript (ES) features in different versions

101. Exploring Common Uses Cases of the JavaScript Spread Syntax (…)

Learn Repo's image-7e614

Understanding Javascript spread operator

102. Closures Demystified: Unlocking Hidden Potential in Your JavaScript Code

Learn Repo's image-0044e8

If you have understood the discussion so far, you should feel confident in your capacity to discuss closures when asked about them during your next interview.

103. What Is Tagged Template Literal In Javascript

Learn Repo's image-70e7a

Before ES6(ECMAScript 2015), we have used single quotes('...') and double quotes("...") to wrap string literals. A simple example is,

104. Slow SPAs Kill Conversions—This Is Your Speed Optimization Survival Guide

Learn Repo's image-871e8

SPA optimization techniques that reduce response times, improve UX, and keep your users coming back.

Learn Repo's image-5d1a3

JAVASCRIPT'S RICH AND FUNCTIONAL WORLD

106. Building Your First Node-RED Flow: Basic Tutorial

Learn Repo's image-e8f9e8

This post introduces a deep dive video tutorial where I teach you the fundamentals of Node-RED and at the same time, show you how to build a Weather dash

107. Using ConfigCat's Feature Flags in a Phaser.io Application

Learn Repo's image-014fe

Let's take a look at how practical a feature flag can be in a Phaser.io application.

108. The Internet Is Full of Duplicate Requests—Here’s How Smart Developers Prevent Them

Learn Repo's image-c738b

Idempotency is an essential tool for preventing duplicate operations, improving API stability, and ensuring consistent behavior in unsafe HTTP methods.

109. How To Protect Your Vue.js Application With Jscrambler

Learn Repo's image-92364

Disclosure: This post focuses on Jscrambler, a JavaScript protection product to which the author is affiliated (as CTO).

110. Achieving a High Return on Investment in Your Testing Efforts in Angular

Learn Repo's image-8a4a08

Testing is often considered a necessary but time-consuming and ineffective task in software development.

111. How to Dynamically Hide and Show Slot Content in a Web Component

Learn Repo's image-6667b8

My attempt at dynamically showing/hiding various slots.

112. Getting Started With Functions in JavaScript: Declarations, Parameters, and More

Learn Repo's image-e1092

In this guide, we’ll explore various aspects of functions in JavaScript, including their declaration, parameters, function expressions, and more.

113. Removing the Stigma of Using Cucumber and Gherkin in Test Automation Processes

Learn Repo's image-dcccf8

Recently at a meet-up there was a talk on writing Cucumber feature files in Cypress, a question was posed to an audience of around 100 - "Who here has tested their stuff with Cucumber?" to which a mild hubbub felt quite negative including a couple of guffaws and scoffs from the back.

114. 4 Reasons Why People Love Web Design And You Should Love It Too

Learn Repo's image-99faa

It's so important how web UI is designed because people perceive images better and quicker than words. Luckily, most of the IT heads understand the value of an eye-catching UI, but few of them realize the real power of it. Actually, web design does much more than you used to think.

115. A Quick Guide to CAB(Call, Apply, Bind) in JavaScript

Learn Repo's image-9a6f58

Here is the easy and simple way to understand call, apply, bind in JavaScript. With these simple examples, you'll never confuse again with these methods

116. A Fast and Easy Example Showing How To Use AWS Node.js SDK V3 for Signed URLs

Learn Repo's image-7e142

The AWS Node.js SDK can be used to generate signed URLs. The SDK is modularized, so instead of installing a giant SDK, you get just what you need.

117. Functional Programming in Javascript for Busy People

Learn Repo's image-0b7be8

You’ve probably used map, reduce, and other functional methods in Javascript before, but there are a few use cases you probably haven’t thought about much or used before. In this post, I’d like to go over these methods (and a few other surprises!) to show what’s possible.

118. My Follow-up to Creating a Web Component for Reveal.js

Learn Repo's image-d1a1e

An update to my earlier demo of building a web component version of Reveal.js.

Thank you for checking out the 118 most read blog posts about Js on HackerNoon.

Visit the /Learn Repo to find the most read blog posts about any technology.


文章来源: https://hackernoon.com/118-blog-posts-to-learn-about-js?source=rss
如有侵权请联系:admin#unsafe.sh