Jadual Kandungan
使用 if 条件语句
typeof 运算符
使用 尝试...catch
try...catch 语句如何工作
结论
Gunakan if pernyataan bersyarat
Kesimpulan
Rumah hujung hadapan web tutorial js Semak sama ada fungsi wujud dalam skrip Java

Semak sama ada fungsi wujud dalam skrip Java

Sep 04, 2023 pm 10:41 PM

检查 Java 脚本中函数是否存在

Anda mungkin telah melihat ralat undefined dalam konsol apabila anda cuba memanggil fungsi yang tidak ditakrifkan dalam kod JavaScript anda. JavaScript membuang ralat ini dan berhenti menjalankan kod. undefined 错误。 JavaScript 抛出此错误并停止运行代码。

在本文中,我将教您如何检查函数是否存在。这样,您可以避免任何可能的错误。这是一种有用的技术,可用于查看特定库或 API 在您运行软件的客户端中是否可用。

JavaScript 有几种不同的方法来查看函数是否存在。我将向您展示几个。

使用 if 条件语句

检查函数是否已定义的一种方法是使用 if 语句来测试它。诀窍是将该函数作为 window 对象的方法进行测试。

所以,如果你想测试 aFunctionName,只需使用:

if (window.aFunctionName) {
    // ...
}
Salin selepas log masuk

如果定义了函数,则将执行括号中的代码。相反,如果您只是测试函数而不使用窗口对象,例如 if(aFunctionName),则如果函数不存在,JavaScript 将抛出 ReferenceErorr

让我们考虑以下示例,该示例检查两个函数是否存在:一个存在,另一个不存在。

// Testing a function that exists
function exists() {
    // ...
}

if (window.exists) {
    console.log('the exists() function exists');
}
else{
    console.log('the exists() function does not exist');
}

if(window.doesntExist) {
    console.log('the doesntExist() function exists');
}
else{
    console.log('the doesntExist() function does not exist');
}
Salin selepas log masuk

上面的代码片段将输出:

the exists() function exists
the doesntExist() does not exist
Salin selepas log masuk

这对于我们的示例非常有效,但该方法的一个问题是我们没有检查命名对象是否实际上是一个函数。事实上,任何具有相同名称的变量都会欺骗我们的测试,让我们认为该函数已定义。

typeof 运算符

或者,我们可以使用 typeof 运算符。该运算符将检查声明的函数的名称是否存在以及它是否是一个函数而不是其他类型的对象或基元。

if (typeof nameOfFunction === 'function') {
    nameOfFunction();
}
Salin selepas log masuk

在上面的示例中,我们测试 nameOfFunction 是否存在,如果存在则运行它。

使用 尝试...catch

try…catch 块处理该块内可能发生的错误。我们将使用此方法来处理当我们调用未定义的函数时 JavaScript 会抛出的 undefined 错误。

try...catch 语句如何工作

我们在 try 块内运行该函数。如果不存在,则会抛出异常,并由 catch 块处理。

这是一个例子:

try {
    testFunction();
} 
catch(err) {
    console.log(err);
}
Salin selepas log masuk

如果 testFunction 未定义,则会将以下消息输出到控制台。

ReferenceError: testFunction is not defined
Salin selepas log masuk

这也是我们在没有 try...catch 块时看到的情况,但在这种情况下,我们的代码将继续在 catch 块下方运行。

结论

本文介绍了在调用函数之前检查 JavaScript 中是否存在函数的三种主要方法。这些是 if 条件语句的使用、typeof 运算符的使用,最后是 try...catch

Dalam artikel ini, saya akan mengajar anda cara menyemak sama ada fungsi wujud. Dengan cara ini anda mengelakkan sebarang kesilapan yang mungkin berlaku. Ini ialah teknik yang berguna untuk melihat sama ada perpustakaan atau API tertentu tersedia dalam klien yang anda gunakan untuk menjalankan perisian anda. 🎜 🎜JavaScript mempunyai beberapa cara berbeza untuk melihat sama ada fungsi wujud. Saya akan tunjukkan beberapa. 🎜

Gunakan if pernyataan bersyarat

🎜Salah satu cara untuk menyemak sama ada fungsi ditakrifkan adalah dengan mengujinya menggunakan pernyataan if. Caranya ialah dengan menguji fungsi sebagai kaedah objek window. 🎜 🎜Jadi, jika anda ingin menguji aFunctionName, hanya gunakan: 🎜 rrreee 🎜Jika fungsi ditakrifkan, kod dalam kurungan akan dilaksanakan. Sebaliknya, jika anda hanya menguji fungsi tanpa menggunakan objek tetingkap, seperti if(aFunctionName), JavaScript akan membuang ReferenceError jika fungsi itu tidak wujud. 🎜 🎜Mari kita pertimbangkan contoh berikut yang menyemak kewujudan dua fungsi: satu wujud dan satu lagi tidak. 🎜 rrreee 🎜Coretan kod di atas akan mengeluarkan: 🎜 rrreee 🎜Ini berfungsi dengan baik untuk contoh kami, tetapi satu masalah dengan pendekatan ini ialah kami tidak menyemak sama ada objek yang dinamakan itu sebenarnya fungsi. Malah, mana-mana pembolehubah dengan nama yang sama akan menipu ujian kami untuk memikirkan fungsi itu ditakrifkan. 🎜

typeof operator

🎜Sebagai alternatif, kita boleh menggunakan operator typeof. Operator ini akan menyemak sama ada nama fungsi yang diisytiharkan wujud dan sama ada ia adalah fungsi dan bukan jenis objek atau primitif lain. 🎜 rrreee 🎜Dalam contoh di atas, kami menguji sama ada nameOfFunction wujud dan jalankannya jika wujud. 🎜

Gunakan blok cuba...tangkap

🎜try…catch blok mengendalikan ralat yang mungkin berlaku dalam blok. Kami akan menggunakan kaedah ini untuk mengendalikan ralat undefined yang dilemparkan JavaScript apabila kami memanggil fungsi yang tidak ditentukan. 🎜

cuba...tangkap Bagaimana pernyataan itu berfungsi

🎜Kami menjalankan fungsi di dalam blok try. Jika ia tidak wujud, pengecualian dilemparkan dan dikendalikan oleh blok catch. 🎜 🎜Berikut adalah contoh: 🎜 rrreee 🎜Jika testFunction tidak ditakrifkan, mesej berikut akan dikeluarkan kepada konsol. 🎜 rrreee 🎜Ini juga yang kita lihat tanpa blok try...catch, tetapi dalam kes ini kod kami akan terus berjalan di bawah blok tangkapan. 🎜

Kesimpulan

🎜Artikel ini menerangkan tiga cara utama untuk menyemak sama ada fungsi wujud dalam JavaScript sebelum memanggilnya. Ini ialah penggunaan pernyataan bersyarat if, penggunaan operator typeof dan akhirnya pernyataan try...catch. Saya juga menggunakan contoh untuk menerangkan cara JavaScript melaksanakan kaedah ini untuk menyemak sama ada fungsi wujud. Saya harap konsep ini lebih jelas kepada anda sekarang! 🎜

Atas ialah kandungan terperinci Semak sama ada fungsi wujud dalam skrip Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apr 04, 2025 pm 02:42 PM

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Siapa yang dibayar lebih banyak Python atau JavaScript? Siapa yang dibayar lebih banyak Python atau JavaScript? Apr 04, 2025 am 12:09 AM

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Demystifying JavaScript: Apa yang berlaku dan mengapa penting Demystifying JavaScript: Apa yang berlaku dan mengapa penting Apr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Bagaimana untuk menggabungkan elemen array dengan ID yang sama ke dalam satu objek menggunakan JavaScript? Bagaimana untuk menggabungkan elemen array dengan ID yang sama ke dalam satu objek menggunakan JavaScript? Apr 04, 2025 pm 05:09 PM

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Adakah JavaScript sukar belajar? Adakah JavaScript sukar belajar? Apr 03, 2025 am 12:20 AM

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Bagaimana untuk mencapai kesan menatal paralaks dan kesan animasi elemen, seperti laman web rasmi Shiseido?
atau:
Bagaimanakah kita dapat mencapai kesan animasi yang disertai dengan menatal halaman seperti laman web rasmi Shiseido? Bagaimana untuk mencapai kesan menatal paralaks dan kesan animasi elemen, seperti laman web rasmi Shiseido? atau: Bagaimanakah kita dapat mencapai kesan animasi yang disertai dengan menatal halaman seperti laman web rasmi Shiseido? Apr 04, 2025 pm 05:36 PM

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Apr 04, 2025 pm 02:06 PM

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...

Perbezaan dalam Konsol.Log Output Result: Mengapa kedua -dua panggilan berbeza? Perbezaan dalam Konsol.Log Output Result: Mengapa kedua -dua panggilan berbeza? Apr 04, 2025 pm 05:12 PM

Perbincangan mendalam mengenai punca-punca utama perbezaan dalam output konsol.log. Artikel ini akan menganalisis perbezaan hasil output fungsi Console.log dalam sekeping kod dan menerangkan sebab -sebab di belakangnya. � ...

See all articles