Bagaimana untuk menyemak sama ada nilai adalah primitif dalam JavaScript?

王林
Lepaskan: 2023-08-26 16:33:16
ke hadapan
874 orang telah melayarinya

JavaScript 中如何检查值是否为原始值?

Dalam tutorial ini kita akan belajar tentang kaedah untuk menyemak sama ada jenis data yang diberikan adalah Asli atau tidak.

Jenis data dalam JavaScript 1. Jenis data primitif 2. Jenis data bukan primitif

Jenis data primitif - rentetan, nombor, undefined, boolean, null, simbol, bigint.

Jenis data bukan primitif - Objek

Jenis/nilai data primitif bukan objek, ia diwakili sebagai Lapisan bawah pelaksanaan bahasa. Semua nilai primitif tidak boleh diubah Ini bermakna anda tidak boleh menukar jenisnya, tetapi boleh menetapkan semula nilai baharu v kepada pembolehubah.

Untuk menyemak sama ada nilai itu adalah nilai primitif, kami menyemak sama ada nilai yang diberikan ialah objek jika Nilai yang kami berikan ialah objek, yang bermaksud ia bukan jenis data primitif menggunakan beberapa kaedah.

Kaedah 1: Gunakan Object()

Kami akan menyemak sama ada nilai yang diberikan adalah jenis objek menggunakan pengendali kesamarataan yang ketat Kerana ia juga menyemak jenis data dan nilai. Ia mula-mula menukar nilai kepada Objek kerana kita akan lulus nilai sebagai parameter melalui objek. Jika nilai kita objek, maka fungsi objek akan mengembalikan objek yang sama dan ia akan dianggap sebagai a objek, jika tidak, pengendali kesaksamaan yang ketat akan menyemak dan mengembalikan palsu kerana jenisnya tidak Ia sama.

Tatabahasa

inputValue !== Object(inputValue);
Salin selepas log masuk

Mari kita tentukan fungsi untuk menyemak sama ada nilai input adalah jenis primitif.

function isPrimitive(inputValue){
   if(inputValue===Object(inputValue)){
      return "Value is not primitive";
   }
   else{
      return "Value is primitive";
   }
}
Salin selepas log masuk

Contoh

Dalam contoh di bawah, kami menyemak nilai berikut jika ia adalah primitif.

  • kosong

  • Nombor

  • String

  • String object

  • Boolean

  • susun

  • susunan kosong

  • Teks objek

<!DOCTYPE html>
<html>
<head>
</head>
<body>
   <h2>Check if the value is primitive or not</h2>
   <p id="result"></p>
</body>
   <script type="text/javascript">
      function isPrimitive(inputValue) {
         if (inputValue === Object(inputValue)) {
            console.log("Value is not primitive")
            document.getElementById("result").innerHTML += inputValue +": not primitive <br>"
         } else {
            console.log("Value is primitive")
            document.getElementById("result").innerHTML += inputValue +": primitive <br>"
         }
      }
      isPrimitive(null)
      isPrimitive(12)
      isPrimitive("This is simple string")
      isPrimitive(new String("This is string object"))
      isPrimitive(false)
      isPrimitive([1, 2, 3])
      isPrimitive([])
      isPrimitive({})
   </script>
</html>
Salin selepas log masuk

Kaedah 2: Gunakan operator jenis

Dalam kaedah ini kami akan menyemak jenis data menggunakan operator typeof dan kami tahu bahawa jenis data bukan primitif sentiasa jenis objek jadi kami akan menyemak sama ada nilai kami adalah jenis berikut Objek atau tidak.

Jika nilai kita bukan jenis objek atau fungsi, maka ia adalah primitif; Kami juga perlu mengendalikan kes nol, kerana null ialah nilai jenis primitif, tetapi typeof akan Jika kita menyemak typeof(null) maka output dipaparkan sebagai objek.

function isPrimitive(inputValue){
   if(inputValue==null)
   {
      return "Value is primitive";
   }
   if(typeof(inputValue)=="function" || typeof(inputValue)=="object"){
      return "Value is not primitive"
   }
   else{
      return "Value is not primitive"
   }
}
Salin selepas log masuk

Contoh

Dalam contoh di bawah, kami menyemak sama ada nilai yang berbeza adalah nilai asal. Semak jika Sama ada nilai itu nilai primitif, kami menggunakan operator jenis. Kami menyemak sama ada jenisnya fungsi atau objek. Jika jenisnya ialah fungsi atau objek, nilainya bukan primitif jenis; jika tidak, ia adalah primitif.

<!DOCTYPE html>
<html>
<head>
</head>
<body>
   <h2>Check if the value is primitive or not</h2>
   <div id="result"></div>
</body>
   <script type="text/javascript">
      function isPrimitive(inputValue){
         if(inputValue==null)
         {
            return `primitive <br>`;
         }
         if(typeof(inputValue)=="function" || typeof(inputValue)=="object"){
            return `not primitive <br>`;
         }
         else{
            return `primitive <br>`;
         }
      }

      let resultDiv = document.getElementById("result");
      resultDiv.innerHTML += "12: " + isPrimitive(12);
      resultDiv.innerHTML += "null: " + isPrimitive(null);
      resultDiv.innerHTML += "false: " + isPrimitive(false);
      resultDiv.innerHTML += "[1,2,3]: " + isPrimitive([1,2,3]);
      resultDiv.innerHTML += `"This is simple string": ` + isPrimitive("This is simple string");
      resultDiv.innerHTML += "new String(): " + isPrimitive(new String("This is string object"));
      resultDiv.innerHTML += "[]: " + isPrimitive([]);
      resultDiv.innerHTML += "{}: " + isPrimitive({});
      resultDiv.innerHTML += "new Date(): " + isPrimitive(new Date());
   </script>
</html>
Salin selepas log masuk

Jadi, kita perlu tahu cara untuk menyemak sama ada nilai yang diberikan adalah nilai jenis primitif atau nilai bukan primitif.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada nilai adalah primitif dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan