JavaScript中的数据类型以及判断数据类型的方法

数据类型概述

undefined、Null、Boolean、Number 、String、function、Object(复杂数据类型)

javaScript 不支持任何创建自定义类型的机制,所有值都成为以上 6 中数据类型之一

undefined类型

Undefined 类型只有一个值,即特殊的 undefined。

在使用 var 或者let声明变量,但没有对其初始化时,这个变量的值就是 undefined。我们在定义变量的时候,尽可能的不要只声明,不赋值。

没有必要显式的给一个变量赋值为 undefined,因为没有赋值的变量会隐式的 (自动的)赋值为 undefined

ECMAScript 第 3 版之前并没有引入这个值,引入之后为了正式区分空对象与未经初始化的变量。

var s
alert(s) // undefined

未初始化的变量与根本不存在的变量(未声明的变量)也是不一样的。

var s
alert(s) // undefined
// alert(a) // 报错:a is not defined

// 使用typeof 判断一个未初始化的变量和未定义的变量返回都是undefined,从逻辑上思考,他们的值,一个是 undefined,一个报错;他们的类型,却都是 undefined
alert(typeof s)
alert(typeof a)

Null类型

Null 类型是一个只有一个值的数据类型,即特殊的值 null。

它表示一个空对象引用(指针),而 typeof 操作符检测 null 会返回 object。

var s = null
alert(typeof s) //object

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null。这样,当检查 null 值就知道是否已经变量是否已经分配了对象引用了。

var s = null
if (s !== null) {
   alert(‘对象存在‘)
}

注意:undefined 是派生自 null 的,因此 ECMA-262 规定对它们的相等性测试返回 true。

由于 undefined 和 null 两个值的比较是相等的,所以,未初始化的变量和赋值为 null 的变量会相等。这时,可以采用 typeof 变量的类型进行比较。但建议还是养成编码的规范,不要忘记初始化变量。

var s = null
var a
alert(a == s) // true
alert(a === s) // false
alert(typeof a === typeof s) // false
alert(undefined == null) // true
alert(undefined === null) //fasle,三个等于号比较的是数据类型

 

原文地址:https://www.cnblogs.com/LO-ME/p/10657834.html

时间: 2024-10-07 05:46:28

JavaScript中的数据类型以及判断数据类型的方法的相关文章

javascript中定义声明函数的四种方法

javascript中定义声明函数的四种方法 :http://blog.163.com/zzf_fly/blog/static/209589158201286104927248/ 方法一:function functionName([parameters]){functionBody}; 方法二:将一个未命名的函数function赋给一个指定变量(var):var add=function(a, b){} 方法三:使用new运算符声明函数varName=new Function([param1N

JavaScript中toStirng()与Object.prototype.toString.call()方法浅谈

toStirng()与Object.prototype.toString.call()方法浅谈 一.toString()是一个怎样的方法?它是能将某一个值转化为字符串的方法.然而它是如何将一个值从一种类型转化为字符串类型的呢? 通过下面几个例子,我们便能获得答案: 1.将boolean类型的值转化为string类型: console.log(true.toString());//"true" console.log(false.toString());//"false&quo

JavaScript中函数对象的call()和apply()方法的总结

在JavaScript中,每个函数都有call()和apply()方法,用法举例如下: 先定义一个some_obj的对象,该对象有一个say()方法: var some_obj={ name:'Ninja', say:function(who){ return 'Haya ' + who + ', I am a '+ this.name; } }; 调用some_obj.say('Dude'); 输出:"Haya Dude, I am a Ninja" 再创建一个对象 var my_o

JavaScript中十种一步拷贝数组的方法

JavaScript中我们经常会遇到拷贝数组的场景,但是都有哪些方式能够来实现呢,我们不妨来梳理一下. 1.扩展运算符(浅拷贝) 自从ES6出现以来,这已经成为最流行的方法.它是一个很简单的语法,但是当你在使用类似于React和Redux这类库时,你会发现它是非常非常有用的. numbers = [1, 2, 3]; numbersCopy = [...numbers]; 这个方法不能有效的拷贝多维数组.数组/对象值的拷贝是通过引用而不是值复制. // ?? numbersCopy.push(4

JavaScript中的数组遍历forEach()与map()方法以及兼容写法

原理: 高级浏览器支持forEach方法 语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: forEach:用来遍历数组中的每一项:这个方法执行是没有返回值的,对原来数组也没有影响: 数组中有几项,那么传递进去的匿名回调函数就需要执行几次: 每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当前项的索引index,原始数组input: 理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改:但是我

js中的数据类型和判断数据类型

基本数据类型,六大基本数据类型:字符串(String).数字(Number).布尔(Boolean).对象(Object).空(Null).未定义(Undefined). 1,字符串:string,单引号或者双引号号起来的,就是字符串. 2,数字(Number),数字类型,包括浮是点数整数等. 3,布尔(Boolean),false,true. 4,未定义(undefined),未定义,当一个变量未创建或者创建未赋值的时候就是undefined. 5,空(Null),不存在,dom节点不存在,返

2.1 javascript中的五种基本数据类型(待更新)

[0]5种数据类型: [0.1]基本数据类型:Undefined.Null.Boolean.Number.String [0.1.1]基本类型值是指简单的数据段,5种基本类型是按值访问的,因为可以操作保存在变量中的实际值 [0.1.2]基本类型的值在内存中占据固定大小的空间,被保存在栈内存中.从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本. [0.1.3]不能给基本类型的值添加属性 [0.2]引用数据类型:Object ☆重点理解和掌握部分: [0.2.1]引用类型值是指那些可以

Javascript 中的非空判断 undefined,null, NaN的区别

原出处:http://blog.csdn.net/oscar999/article/details/9353713 JS 数据类型 在介绍这三个之间的差别之前, 先来看一下JS 的数据类型. 在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,.... 但是在js 中定义变量统一使用 var , 或者不使用var 也可以使用. 那么js 中是否有数据类型的概念呢? 当然有, 使用 typeof 就可以判断这个变量的数据类型: [javasc

php ,转换数据类型,判断数据类型

1.php转换数据类型方法有强制转换和函数式转换: 强制转换就是直接在变量前面加上用括号括起来的类型名称即可. 函数式转换是bool settype(mixed var, string type).参数var 为指定的变量:参数type为指定的数据类型.参数Type有7个可选值,即boolean,float,integer,array,null,object和String.如果转换成功则settype函数返回true,否则返回false.当字符串转换为整形或浮点型时,如果字符串是以数字开头的,就