Rumah >hujung hadapan web >tutorial js >Mengapa ' ' Menggabungkan Rentetan Tetapi '-' Menolak Nombor dalam JavaScript?

Mengapa ' ' Menggabungkan Rentetan Tetapi '-' Menolak Nombor dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-11-24 00:05:14452semak imbas

Why Does ' ' Concatenate Strings But '-' Subtracts Numbers in JavaScript?

Gelagat Mencapah Operator ' ' dan '-' dengan Rentetan dan Nombor dalam JavaScript

JavaScript mempamerkan tingkah laku yang membingungkan apabila melakukan operasi matematik antara rentetan dan nombor. Secara khusus, kelakuan pengendali ' ' dan '-' berbeza-beza bergantung pada jenis operan yang terlibat.

Mari kita teliti dua contoh untuk menggambarkan pemerhatian ini:

  1. Penggabungan Rentetan ( ):

    console.log("1" + 1);

    Output: "11"

  2. Tolak Nombor (-):

    console.log("1" - 1);

    Output: 0

Penaakulan:

  1. Penggabungan Rentetan: Pengendali ' ' melakukan penggabungan rentetan apabila salah satu daripada operan ialah rentetan. Dalam contoh pertama, "1" ialah rentetan, jadi JavaScript menukar angka 1 kepada rentetan dan menggabungkannya, menghasilkan "11".
  2. Penolakan Nombor: Sebaliknya , operator '-' tidak boleh melakukan penolakan pada rentetan. Sebaliknya, JavaScript cuba menukar operan rentetan ("1" dalam contoh kedua) kepada nombor. Penukaran ini berjaya kerana "1" boleh ditafsirkan secara sah sebagai nilai angka. Walau bagaimanapun, hasil penolakan 1 daripada 1 menghasilkan 0.

Tingkah laku ini berpunca daripada fakta bahawa JavaScript mematuhi paradigma "menaip longgar", di mana paksaan jenis dilakukan secara automatik untuk menjadikan operasi serasi. Walau bagaimanapun, dalam kes pengendali dan rentetan '-', paksaan jenis tidak boleh digunakan, yang membawa kepada tingkah laku yang diperhatikan.

Atas ialah kandungan terperinci Mengapa ' ' Menggabungkan Rentetan Tetapi '-' Menolak Nombor dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn