cari

Rumah  >  Soal Jawab  >  teks badan

javascript - masalah aritmetik js, selesaikan~~

"1"- -"1";

Hasil operasi di atas ialah 2. Jika anda meninggalkan ruang di tengah, ralat akan dilaporkan Jika terdapat ruang, hasilnya akan menjadi 2. Bolehkah seseorang menganalisis mengapa?

Terima kasih~~

大家讲道理大家讲道理2788 hari yang lalu512

membalas semua(5)saya akan balas

  • 某草草

    某草草2017-05-19 10:39:30

    Apabila melakukan operasi tolak, js akan cuba menukar ungkapan pada kedua-dua belah kepada nombor supaya operasi boleh dijalankan (tingkah laku pembetulan ralat kecil), dan menjadi 1-(-1), menghasilkan 2 .
    Bagi ralat yang dilaporkan tanpa ruang, ia benar-benar kesalahan tatabahasa. .
    Dan ini adalah ralat, bukan soal pemalar atau tidak Walaupun ia ditukar kepada pembolehubah, a--b adalah sintaks yang salah ditukar kepada a-( -b)? Itu akan memusnahkan secara langsung --, memusnahkan logik
    Melainkan anda a---b, penghurai boleh menjadikannya (a--)-b untuk anda, tetapi seperti. ini Cara penulisannya juga sangat kelakar Mungkin apa yang anda ingin ungkapkan ialah a-(--b)

    ?

    Penghurai hanya akan membuat beberapa pembetulan untuk anda apabila makna (yang difikirkannya) agak jelas, sama seperti ''-'' hanya nombor dalam penolakan sokongan js, jadi jika anda bukan nombor ia akan menukarnya kepada Nombor, tetapi ''+'' dan 0+'', dalam kes ini ia perlu diperbetulkan berdasarkan ungkapan pertama anda, jika tidak, ia tidak akan tahu sama ada anda sedang melakukan penggabungan rentetan atau penambahan terlalu buruk. Ia benar-benar pembetulan ralat yang merosakkan.

    Jangan terlalu sibuk dengan perkara seperti ini, ini soalan hiburan. . Apabila bercakap tentang pengekodan, saya percaya tiada sesiapa yang waras akan melakukan ini

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:39:30

    1. Apabila terdapat ruang antara dua -, ia dianggap sebagai tanda tolak, sama seperti @ Die Fatty menjawab. Rentetan pada kedua-dua belah akan ditukar kepada nombor dan 1 tolak -1 akan menjadi 2; -有空格的时候,被认为是减号,如 @死胖子 回答的一样。两边字符串会被转成数字处理, 1减-1得2;

    2. 两个-没有空格,就变成了--

      Dua -s tanpa ruang menjadi operator -- Ini ialah operasi pengurangan dan hanya boleh digunakan untuk pembolehubah. Menggunakan tatatanda ini pada nombor pasti akan mengakibatkan ralat. Kalau tak percaya boleh cuba
    3. 1--        //Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
      --1        //Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
    🎜

    balas
    0
  • PHP中文网

    PHP中文网2017-05-19 10:39:30

    1- -1 bersamaan dengan 1-(-1)

    balas
    0
  • 为情所困

    为情所困2017-05-19 10:39:30

    -"1" ialah operasi unari, yang menukar rentetan menjadi -1 Berbanding dengan 1-(-1), kita mendapat 2.

    Jika tiada ruang, penghurai akan melaporkan ralat sintaks.

    balas
    0
  • 怪我咯

    怪我咯2017-05-19 10:39:30

    Pertama terdapat dua pengendali: operator ruang, tolak dan operasi nilai negatif Keutamaan operasi yang terakhir adalah lebih tinggi daripada yang pertama. -"1" akan ditukar secara tersirat kepada -1
    Selain tiada ruang, ia adalah operasi penurunan diri Seperti yang dikatakan oleh @deepgoing, "pemalar" tidak boleh melakukan operasi kenaikan diri dan pengurangan diri#🎜🎜. #

    balas
    0
  • Batalbalas