javascript - masalah aritmetik js, selesaikan~~
大家讲道理
大家讲道理 2017-05-19 10:37:30
0
5
484

"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~~

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(5)
某草草

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

仅有的幸福
  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
🎜
Ty80

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

为情所困

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

Jika tiada ruang, penghurai akan melaporkan ralat sintaks.

刘奇

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#🎜🎜. #

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan