Why does Ajax data send single integer as array?

Why does Ajax data send single integer as array?

I'm sure this question has been answered many times in the >5000 posts found with "ajax data", so I apologize for repetition, but at least this should have a simple answer.

If I write $.ajax({  ..., data: {id: id}, ...}) then I get a query string like ...?id[]=147 rather than ?id=147. Why is this array form used? According to the docs, the params function is used to convert the data if a key-value pair string is not provided, but $.params({id: id}) returns "id=147", not "id[]=147". What is going on here?

Thanks.