## JavaScript Navigator product Property
The `navigator.product` property is a read-only property of the `Navigator` object. It returns the engine name of the current browser.
In almost all modern browsers, this property returns the string `"Gecko"`. This behavior is standardized across browsers to ensure backward compatibility with older web applications.
---
## Syntax
```javascript
navigator.product
```
### Return Value
* **Type**: `String`
* **Value**: The browser engine name (typically `"Gecko"`).
---
## Browser Support
The `navigator.product` property is supported by all major web browsers:
| Chrome | Internet Explorer | Edge | Firefox | Safari | Opera |
| :---: | :---: | :---: | :---: | :---: | :---: |
| Yes | Yes | Yes | Yes | Yes | Yes |
---
## Code Examples
### Example 1: Basic Usage
The following example demonstrates how to retrieve the value of the `navigator.product` property.
```javascript
// Retrieve the browser engine name
let engine = navigator.product;
console.log(engine);
// Output in almost all modern browsers: "Gecko"
```
### Example 2: Displaying Browser Engine in HTML
You can dynamically display the browser engine name on a webpage:
```html
Navigator product Example
Navigator product Property
Click the button to display the browser engine name.
```
---
## Considerations and Best Practices
### 1. Deprecation Warning
The `navigator.product` property is **deprecated** in the HTML standard. While browsers continue to support it for legacy reasons, you should avoid using it in new web development projects.
### 2. Lack of Reliability
In modern web browsers (including Chrome, Safari, Edge, and Firefox), `navigator.product` always returns `"Gecko"`. Therefore, it cannot be used to reliably identify or distinguish between different browsers.
### 3. Recommended Alternative: Feature Detection
If you need to write browser-specific code, do not rely on `navigator.product` or user-agent sniffing. Instead, use **feature detection** (checking if a specific API or property exists) to determine if a browser supports a feature.
*Example of Feature Detection:*
```javascript
if ('geolocation' in navigator) {
// Geolocation is supported
navigator.geolocation.getCurrentPosition(successCallback);
} else {
// Geolocation is not supported
console.log("Geolocation is not supported by this browser.");
}
```