`
zhouyrt
  • 浏览: 1162676 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascrpt的類型檢測

 
阅读更多

<!----><!----> <!---->

眾所周知, js 是弱類型語言。定義任何類型的變量都用 var 關鍵字,如果只是聲明變量,卻沒有給其賦值。那么誰也不知道這個變量是啥類型的。

 

如下:

 

var abc;//定義一個變量abc,卻沒有給其賦值

 

Java 中卻不同,定義一個變量后,馬上就知道了變量的類型和變量所占的內存大小。看似沒給 abc 賦值,實際上 java 會給其一個默認值(這裡是 0 ),當然 abc 定義在一個方法中沒有賦值的話編譯是通不過的。

<!----><!----> <!---->如下:

 

int abc;//定義一個整數型變量abc,占4個字節

 

 

好了,回到主題。 Js 中檢測類型用 typeof ,對于內置類型,這是最常見的

alert(typeof 3);//輸出”number”

alert(typeof “hello”);//輸出”string”

alert(typeof false);//輸出”boolean”

alert(typeof undefined);//輸出”undefined”,這也是基本類型之一

alert(typeof null);//輸出”object”,沒有輸出”null”,據說是js實現時的一個錯誤

 

對於對象,數組用 typeof ,輸出的都是 ”object”

 

  function User(name) {//定義一個類
        this.name = name;
  }
  var u1 = new User(“jack”);//創建一個對象
  alert(typeof  u1);//輸出”object”

  var ary = [1,3,5];//定義一個數組
  alert(typeof ary); //輸出”object”

 

 

那么怎么能區分出是某個具體類型的對象,可以用 對象的 construtor屬性

 

 

alert(u1. constructor == User);//輸出true

alert(ary. constructor == User);//輸出false

alert(ary. constructor == Array);//輸出true
 

 

 

Js 提供了 instanceof 運算符來檢測某個對象屬於某個具體的類型,實際上它也是使用對象的 constructor

 

 alert(u1 instanceof User);//true

 alert(u1 instanceof Array);//false
 

補充:

 

function fun() {//js還有一個特殊對象--函數

}

alert(typeof fun);//輸出function,而非object
 
分享到:
评论

相关推荐

    【JavaScript源代码】JavaScript类型检测的方法实例教程.docx

    在JavaScript编程中,类型检测是确保程序正确运行的关键部分。JavaScript是一种动态类型的弱类型语言,这意味着变量可以在不同的时刻存储不同类型的数据。了解如何检测变量的类型对于编写健壮的代码至关重要。下面...

    JavaScript类型检测之typeof 和 instanceof 的缺陷与优化

    在javascript中,typeof 和 instanceof 是用来判断数据类型比较通用的两个方法,这篇文章的目的是通过对这两个方法介绍来分析其存在的不足并提出优化方案。 typeof ——————————————————————...

    如何检测JavaScript的各种类型

    JavaScript类型检测是编程中一项十分重要的技能,因为正确的类型检测能够帮助开发者避免许多潜在的异常和错误。在JavaScript中,类型大致可以分为原始类型和对象类型,其中原始类型包括字符串(string)、数字...

    在SonarQube上使用java自定义JavaScript检测规则

    使用 Java 开发 SonarQube JavaScript 检测规则 在 SonarQube 中使用 Java 开发检测规则是非常重要的,特别是在 JavaScript 项目中检测代码质量。SonarQube 提供了一个强大的平台,允许开发者使用 Java 语言开发...

    Javascript静态类型检测器Flow中文参考指南

    Flow是Facebook推出的一款静态类型检查工具,专为JavaScript设计,用于在代码运行前检测可能存在的类型错误。Flow的目标是提供一种方式,让开发者可以在保持JavaScript动态特性的前提下,引入静态类型检查,提升代码...

    javascript源码检测工具

    JavaScript源码检测工具,如JSLint,是用于提升代码质量、发现潜在错误和编码风格问题的重要辅助工具。JSLint是由Douglas Crockford开发的一款著名JavaScript代码质量检查器,它通过严格的一系列规则来分析代码,...

    javascript中的数据类型检测方法详解.docx

    在JavaScript中,了解数据类型检测方法对于编写高效和健壮的代码至关重要。JavaScript是一种动态类型语言,这意味着变量的类型可以在运行时改变。因此,正确识别变量的数据类型是调试和优化代码的关键。 首先,我们...

    JavaScript引擎JIT代码的类型混淆缺陷检测器.pdf

    JavaScript引擎JIT代码的类型混淆缺陷检测器 JavaScript引擎JIT代码的类型混淆缺陷检测器是一种用于检测JavaScript引擎JIT代码中的类型混淆缺陷的检测器。该检测器基于对JavaScript引擎JIT编译器设计机制的剖析,...

    js检测浏览器类型

    在JavaScript中,检测浏览器类型是常见的需求,这有助于开发者针对不同浏览器实现特定的功能或优化。以下将详细讲解如何使用JavaScript来识别用户所使用的浏览器类型。 首先,JavaScript提供了`navigator`对象,它...

    在javaScript中检测数据类型的几种方式小结

    最后,Object.prototype.toString.call()是一个更详细的数据类型检测方法,它调用了Object原型上的toString方法,能够准确识别出所有JavaScript中的类型。使用此方法时,无论传入什么类型的参数,都会返回一个格式为...

    基于增强代码属性图的JavaScript漏洞检测方法.pdf

    “基于增强代码属性图的JavaScript漏洞检测方法” 本文提出了一种基于增强代码属性图的JavaScript漏洞检测方法,该方法可以有效地检测网络应用中的JavaScript安全漏洞。该方法首先将JavaScript代码的动态特征与静态...

    前端开源库-es-is

    "es-is"是一个专为前端开发者设计的开源库,它是JavaScript类型检测库的一个ES模块友好分支,旨在提供对JavaScript变量类型的精确检查。这个库的出现,使得在现代前端项目中,开发者能够更加灵活、高效地进行类型...

    JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)

    JavaScript中检测客户端类型的详细知识点包括了对访问网页的用户代理字符串UA的分析,以此来确定访问者的浏览器、平台、操作系统、移动设备以及游戏系统等信息。下面详细讲述这些知识点: 1. 用户代理字符串UA:UA...

    面向安卓应用的JavaScript漏洞检测工具.pdf

    由于Android应用程序常常使用WebView组件来嵌入网页内容,JavaScript代码得以与应用程序交互,然而这同时也使得应用程序容易受到特定类型的漏洞攻击。针对这一问题,黄青青、宋巍和钱祥星开发了一款名为JSDroid的...

    碰撞检测 JavaScript

    变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、对象等)、流程控制(条件语句、循环)、函数定义和调用,以及事件处理都是JavaScript编程的基础。 在JavaScript中,碰撞检测通常涉及到坐标系统...

    javascript基本数据类型及类型检测常用方法小结

    在JavaScript中,理解基本数据类型和类型检测是编程的基础。JavaScript提供了六种基本数据类型:Object、Number、String、null、undefined和Boolean。这些类型构成了JavaScript语言的核心,所有的操作都基于这些类型...

    JS类型检测库弥补typeof的问题

    在JavaScript这个动态类型的编程语言中,类型检测是一个常见的需求,因为它的灵活性可能导致一些难以预见的错误。`typeof`操作符是JavaScript内置的用于检测变量类型的工具,但它在处理某些特定情况时存在局限性。...

Global site tag (gtag.js) - Google Analytics