JS判断数据类型、null与undefined的区别?
来源:互联网 发布:java socket 怎么使用 编辑:程序博客网 时间:2024/06/04 19:19
JavaScript有三种方法,可以确定一个值到底是什么类型。
typeof运算符
instanceof运算符
Object.prototype.toString方法
1、typeof运算符
谈到判断数据类型,首先应该回忆到JS的两种数据类型:原始类型、引用类型。那么ECMAScript 提供了 typeof 运算符判断一个值是否表示一种原始类型:*如果它是原始类型,还可以判断它表示哪种原始类型。
对变量或值调用 typeof 运算符将返回下列值之一:
typeof undefined"undefined"typeof null"object"typeof 1"number"typeof '1'"string"typeof {}"object"typeof [1,2,3]"object"typeof (function(){})"function"
2、instanceof运算符
3、Object.prototype.toString方法
null与undefined的区别?
null == undefined
null !== undefined
null的类型是object,这是由于历史原因造成的。1995年JavaScript语言的第一版,所有值都设计成32位,其中最低的3位用来表述数据类型,object对应的值是000。当时,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),完全没考虑null,只把它当作object的一种特殊值,32位全部为0。这是typeof null返回object的根本原因。
为了兼容以前的代码,后来就没法修改了。这并不是说null就属于对象,本质上null是一个类似于undefined的特殊值。
那么他们的区别是?
null是一个表示”无”的对象,转为数值时为0;undefined是一个表示”无”的原始值,转为数值时为NaN。
null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值:
表达式:123 + null 结果值:123undefined出现的场景:
变量声明了,但没有赋值 var i; i // undefined
调用函数时,应该提供的参数没有提供,该参数等于undefined function f(x) { return x; } f()
// undefined对象没有赋值的属性 var o = new Object(); o.p // undefined
函数没有返回值时,默认返回undefined function f() {} f() // undefined
- JS判断数据类型、null与undefined的区别?
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- 【转】js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null, 的区别详细解析
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null, 的区别详细解析
- js判断undefined类型,undefined,null, 的区别详细解析
- js判断undefined类型,undefined,null, 的区别详细解析
- js判断undefined类型,undefined,null, 的区别详细解析
- js判断undefined类型,undefined,null, 的区别详细解析
- js的null和undefined的区别-js基本数据类型
- JS 判断 undefined与null
- ABP+AdminLTE+Bootstrap Table权限管理系统一期
- Webpack3.x 中 html-webpack-plugin的用法
- 多线程生产者消费者模式(wait()和notify())
- RCNN-阅读笔记-理解
- Windows环境下vs2015+opencv3.1+contrib库安装配置
- JS判断数据类型、null与undefined的区别?
- ros(开源机器人操作系统)准备阶段
- 【Scikit-Learn 中文文档】特征选择
- HDU 4424 Conquer a New Region(分治 并查集 最大生成树)
- linux查看端口是否被占用
- leetCode-Contains Duplicate
- java_EE_DBUtils工具类
- IO多路复用模型之Select
- 约束----主键约束