DEV Community

Lars-Erik Bruce
Lars-Erik Bruce

Posted on

Why We Prefer Double Quotes in HTML Attributes and Single Quotes in JavaScript

Understanding the preferences in code styling can be a gateway into the rich history of web development. Among such conventions are the uses of double quotes for HTML attributes and single quotes in JavaScript. But why is this the preferred style, and how did it come about?

HTML Attributes: The Double Quote Convention

In HTML, attributes are used to provide additional information about an element. For example:

<a href="https://example.com">Visit Example</a>
Enter fullscreen mode Exit fullscreen mode

Here, the href attribute specifies the URL the link points to, and it's enclosed in double quotes.

Historically, the use of double quotes in HTML attributes has been the widely accepted norm, and various web browsers were optimized for this convention. One reason for this is that double quotes make it easier to include single quotes within the attribute value without any hassle.

JavaScript: The Single Quote Preference

In JavaScript, both single (') and double (") quotes can be used interchangeably to define string literals. However, single quotes became a convention for a very practical reason:

let message = 'Hello, world!';
Enter fullscreen mode Exit fullscreen mode

Before the advent of modern frameworks and libraries, it was common to include inline JavaScript within HTML attributes, particularly in event handlers. By using single quotes for JavaScript strings, developers could seamlessly copy and paste JavaScript code into HTML attributes without needing to escape the double quotes:

<button onclick="alert('Hello, world!')">Click Me</button>
Enter fullscreen mode Exit fullscreen mode

In the example above, if double quotes were used in the JavaScript, it would conflict with the HTML attribute delimiters, making the code cumbersome and less readable.

Double quotes in JSX

In the evolving landscape of web development, coding conventions have been established for both clarity and utility. Within the React ecosystem, JSX (JavaScript XML) closely resembles HTML, and developers prefer using double quotes for attributes in JSX to maintain a consistent and familiar syntax with HTML. On the other hand, in regular JavaScript, the preference for single quotes has historical roots and practical reasons, such as avoiding conflicts when embedding JavaScript within HTML or making string interpolation in template literals clearer. By adhering to these conventions, codebases maintain consistency, reduce cognitive load when switching between JSX and JS, and streamline the development experience.

In Conclusion

The preference for double quotes in HTML and single quotes in JavaScript is rooted in the practical needs of early web development. While modern practices have evolved, and there are tools to manage these nuances automatically, understanding the historical context provides insight into the legacy of web development and the traditions we uphold today.

Written by Chat GPT, after my instructions. Content are proof read, and I stand 100% for every opinion expressed within.

Top comments (0)