diff --git a/sanic/response/types.py b/sanic/response/types.py
index 3f93855d..d3c8cdb6 100644
--- a/sanic/response/types.py
+++ b/sanic/response/types.py
@@ -345,7 +345,7 @@ class JSONResponse(HTTPResponse):
         body: Optional[Any] = None,
         status: int = 200,
         headers: Optional[Union[Header, Dict[str, str]]] = None,
-        content_type: Optional[str] = None,
+        content_type: str = "application/json",
         dumps: Optional[Callable[..., str]] = None,
         **kwargs: Any,
     ):

diff --git a/tests/test_response_json.py b/tests/test_response_json.py
index c89dba42..aa1c61dd 100644
--- a/tests/test_response_json.py
+++ b/tests/test_response_json.py
@@ -213,3 +213,12 @@ def test_pop_list(json_app: Sanic):
 
     _, resp = json_app.test_client.get("/json-pop")
     assert resp.body == json_dumps(["b"]).encode()
+
+
+def test_json_response_class_sets_proper_content_type(json_app: Sanic):
+    @json_app.get("/json-class")
+    async def handler(request: Request):
+        return JSONResponse(JSON_BODY)
+
+    _, resp = json_app.test_client.get("/json-class")
+    assert resp.headers["content-type"] == "application/json"

JSONResponse defaults to None content-type
### Is there an existing issue for this?

- [X] I have searched the existing issues

### Describe the bug

```python
@app.get("/")
async def handler(request: Request):
    return JSONResponse({"message": "Hello World!"})
```
```sh
╰─▶ curl localhost:9999   
HTTP/1.1 200 OK
content-length: 26
connection: keep-alive
alt-svc: 
content-type: None

{"message":"Hello World!"}
```

### Code snippet

_No response_

### Expected Behavior

`content-type: application/json`

### How do you run Sanic?

Sanic CLI

### Operating System

all

### Sanic Version

LTS+

### Additional context

_No response_
tests/test_response_json.py::test_json_response_class_sets_proper_content_type
tests/test_response_json.py::test_body_can_be_retrieved tests/test_response_json.py::test_body_can_be_set tests/test_response_json.py::test_raw_body_can_be_retrieved tests/test_response_json.py::test_raw_body_can_be_set tests/test_response_json.py::test_raw_body_cant_be_retrieved_after_body_set tests/test_response_json.py::test_raw_body_can_be_reset_after_body_set tests/test_response_json.py::test_set_body_method tests/test_response_json.py::test_set_body_method_after_body_set tests/test_response_json.py::test_custom_dumps_and_kwargs tests/test_response_json.py::test_override_dumps_and_kwargs tests/test_response_json.py::test_append tests/test_response_json.py::test_extend tests/test_response_json.py::test_update tests/test_response_json.py::test_pop_dict tests/test_response_json.py::test_pop_list