目前最新《前端小白入门系列课程》

JavaScript 数据类型
参考 - 【EC-前端】
根据[ECMA-262]的定义,JavaScript共有七种数据类型:

Undefined、Null、Boolean、String、Symbol、Number、Object。

注意:数组和函数都不是数据类型,他们是一种特殊的Object
JavaScript是一种弱类型语言。程序在变量赋值时,JavaScript引擎会自动对值进行判断并设定类型。
七种数据类型介绍
类型一:Undefined
Undefined类型的值只有一个:undefined。变量如果声明后未赋值,其值默认等于undefined。

let foo;
typeof foo; // undefined
1
2
类型二:Null
Null类型的值只有一个:null,一个表示空的对象。

类型三:Boolean
Boolean类型用于表示一个逻辑实体,包含两个值:true和false。

类型四:String
用于表示由零个或多个由UTF-16编码的字符序列组成的字符串。通常用单引号''或双引号""包裹来表示。

类型五:Symbol
Symbol类型的值是唯一的且不可更改的。

Symbol类型的值可以作为对象的属性使用,好处是能避免属性名冲突引起的属性覆盖问题。

类型六:Number
Number类型具有18437736874454810627(264-253+3)个值,
表示为双精度64位IEEE 754-2008中的值,采用IEEE标准所指定的二进制浮点数算法。

其中包含三个特殊的值:

正无穷(positive Infinity):+∞。在JS代码中表示为:+Infinity
负无穷 (negative Infinity):-∞。在JS代码中表示为:-Infinity
NAN(Not-a-Number):使用9007199254740990(2^53-2)表示
其余18437736874454810624 (264-253) 个值为有限数(finite numbers),且正负数
对半,即每一个有限正数都对应了一个有限负数。

注:0也是成对出现的。这两个值在程序中被表示为+0 (或0) 和 -0。
类型七:Object
Object类型的值是一些属性的集合。

属性包括属性名和属性值。属性名可以是String类型或Symbol类型,属性值可以是任何数据类型。

let obj = new Object(),
    p1 = 'prop1', 
    p2 = new Symbol('p2');

obj[p1] = 'value1'; //字符串作为属性名
obj[p2] = 'value2'; //Symbol类型的值作为属性名
1
2
3
4
5
6
使用 typeof 命令判断数据类型
// 判断字符串
typeof 'hello' // "string"
// 判断数字
typeof 99 // "number"
// 判断布尔值
typeof true // "boolean"
// 判断对象
typeof {} // "object"
// 判断null
typeof null // "object"
// 判断undefined
typeof undefined // "undefined"
// 判断Symbol值
typeof Symbol('hello JS') // "symbol"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
使用typeof判断数据类型并不十分靠谱,比如上面typeof null和typeof {}都返回了"object"。

如果需要判断变量是否为null,应该使用"==="判断:

var foo = null;

typeof foo // "object"
foo === null // true
1
2
3
4
另外:如果判断变量是否为数组,typeof命令也是不靠谱的,你应该使用Array.isArray()方法判断:

var arr = [1,2,3];

typeof arr // "object"
Array.isArray(arr) // true
1
2
3
4
上面我们提到数组和函数是一种特殊的Object类型,那是否意味着函数也不能使用typeof判断呢,答案是否定的,typeof对函数进行了"特殊照顾":

var func = function(){
    console.log('Hello JavaScript');
};

typeof func // "function"
--------------------- 
作者:EC前端 - Web开发手册 
来源:CSDN 
原文:https://blog.csdn.net/weixin_39667945/article/details/88826932 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/jxzeng1991/article/details/89059947
今日推荐