js中的数据类型和判断数据类型
js中的数据类型和判断数据类型
基本数据类型,六大基本数据类型:字符串(String)、数字(Number)、布尔(Boolean)、对象(Object)、空(Null)、未定义(Undefined)。
1,字符串:string,单引号或者双引号号起来的,就是字符串。
2,数字(Number),数字类型,包括浮是点数整数等。
3,布尔(Boolean),false,true。
4,未定义(undefined),未定义,当一个变量未创建或者创建未赋值的时候就是undefined。
5,空(Null),不存在,dom节点不存在,返回值为null。
6,对象(object),js中万物皆对象。
7,不是基本数据类型,function。
8,数组(array),[]
那么如果有一个变量,如何判断它的数据类型。
1,首先typeof可以解决大部分的数据类型判断。以上1-4和7(8等会再说)都是可以直接(typeof 变量名)返回变量的基本数据类型的,判断某个是否为String类型,可以直接 if(typeof(你的值) == "string"){}。只有null和object返回object类型,这里可以理解成null是一个空对象,但是由于(null == undefined)返回ture。所以可以理解成一个空对象的占位符。
怎么判断null和object类型呢 ?首先判断是不是object,然后在判断是不是null,若是返回null,若不是返回object:
function isObj(str)
{
if(str === null)
{
return false;
}
return typeof str === 'object';
}
那么8返回的也是object,怎么判断呢?instanceof出场。
2,instanceof 用来判断某一个变量是否是某一个对象的实例,是一个三目运算符:a instanceof b?alert("true"):alert("false") //注意b值是你想要判断的那种数据类型,不是一个字符串,比如Array。
var a;
var b = 2;
var c = "字符串";
var d = false;
var e = null;
var f = undefined;
var g = [];
var i = new Object();
var h = function hh(argument) { }
alert(e instanceof Array)
alert(i instanceof Array)
alert(g instanceof Array)
此外还有一个constructor,用法跟instance差不多,不多说了。
上面说了这些,其实在用的时候,要组合起来用,先判断变量的类型,再在范围内做下一步的判断就可以。
js中的数据类型和判断数据类型的更多相关文章
- JS中的常量(基本数据类型)和内置对象
JS中的基本数据类型: String .number.null.boolean.undefined.object.symbol(ES6) 1. 利用typeof运算符时其中只有null是异常的,ty ...
- JS 中对变量类型判断的几种方式
文章整理搬运,出处不详,如有侵犯,请联系~ 数据类型判断和数据类型转换代码工具 在 JS 中,有 5 种基本数据类型和 1 种复杂数据类型,基本数据类型有:Undefined, Null, Boo ...
- JS中的相等性判断===, ==, Object.is()
首发地址:http://www.geeee.top/2019/11/15/equality-comparisons/,转载请注明出处 相信刚接触JS的人都会被他的想等性判断给整糊涂,看看下面代码,你能 ...
- JS中的数据类型及判断数据类型的方法
简单类型(基本类型): number,string,boolean,null,undefined 复杂类型(引用类型):object typeof 只能判断基本数据类型 instanceof 能够判断 ...
- js数据类型及判断数据类型
众所周知,js有7种数据类型 1. null 2. undefined 3. boolean 4. number 5. string 6. 引用类型(object.array.function) 7. ...
- 关于js中的this之判断this
this绑定规则的优先级顺序 new操作符绑定 > 显示绑定 > 隐式绑定 > 默认绑定 所以在判断函数在某个调用位置应用的是哪条规则,可以按下列这样的顺序 if(函数在ne ...
- js中typeof可以准确判断哪些变量类型
typeof 运算符返回一个用来表示表达式的数据类型的字符串. 可能的字符串有:"number"."string"."boolean".& ...
- [js]js中函数传参判断
1,通过|| function fun(x,y){ x=x||0; y=y||1; alert(x+y); } fun(); 2.通过undefined对比 function fun(x,y){ if ...
- js中true和false判断
布尔类型里只有这6参数个返回false,其它都为true Boolean(false) // false Boolean(undefined) // false Boolean(null) // fa ...
随机推荐
- JSON-RPC(jsonrpc4j)使用demo
服务端开发,在很多情况下,需要使用到RPC框架,今天发现一款很轻量的RPC框架--JSON-RPC.json rpc 是一种以json为消息格式的远程调用服务,它是一套允许运行在不同操作系统.不同环境 ...
- WooCommerce Shortcode 简码使用方式说明
WooCommerce 自帶的几个简易代码,可以用来插入文章和页面內容里面.下面简码安裝时会自动建立,因此,应该不需要使用在其他地方 : [woocommerce_cart] – 顯示購物車頁面 [w ...
- Android 环境搭建资料及启动过程中问题汇总
一.环境搭建资料 推荐谷歌自己开发的Android Studio 工具可以从这个网址下载:http://tools.android-studio.org/,直接下载推荐的就行 二.安装 安装时最好指定 ...
- hdu6206 Apple
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6206 题目: Apple Time Limit: 1000/1000 MS (Java/Oth ...
- NGUI混合FingerGesture《卷一》 统一坐标
问题背景 使用FingerGesture 获取触碰点2D坐标, 将该2D坐标赋值给NGUI元素,发现位置出现偏差. 排查思路 1:NGUI的 (0,0,0)默认位置是在屏幕正中心.而FingerGes ...
- 什么是Java中的原子操作( atomic operations)
1.啥是java的原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行. 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么 ...
- 测试应用documentFragment 和 直接操作dom 的区别
DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null. 不过它有一种特殊的行为,该行为使得它非常有用,即当请求把一个 DocumentFragment ...
- python_threading模块实现多线程详解(转)
综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势 ...
- Python学习笔记之Python的多重继承和MixIn
多重继承 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能. 回忆一下Animal类层次的设计,假设我们要实现以下4种动物: Dog - 狗狗: Bat - 蝙蝠: Parr ...
- Java Swing简单的加法器
package test; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class FrameDe ...