本文最后更新于:2024年3月18日 凌晨
JavaScript 数据类型
- 值类型(基本类型):字符串(String),数字(Number),布尔(Boolean),对空(Null),未定义(Undefined),Symbol
- 引用数据类型:对象(Object),数组(Array),函数(Function)
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
JavaScript 拥有动态类型
- JavaScript 拥有动态类型,这意味着相同的变量可用作不同的类型:
1 2 3
| var x; var x = 5; var x = "John";
|
String
- 字符串是存储字符(比如 “Bill Gates”)的变量。
- 字符串可以是引号中的任意文本,您可以使用单引号或双引号:
1 2
| var carname="Volvo XC60"; var carname='Volvo XC60';
|
- 您可以在字符串中使用引号,只要不匹配包围字符串的引号即可:
1 2 3
| var answer="It's alright"; var answer="He is called 'Johnny'"; var answer='He is called "Johnny"';
|
Number
- JavaScript 只有一种数字类型,数字可以带小数点,也可以不带:
1 2
| var x1=34.00; var x2=34;
|
- 极大或极小的数字可以通过科学(指数)计数法来书写:
1 2
| var y=123e5; var z=123e-5;
|
NaN 属性
- NaN 即非数值(Not a Number),NaN 属性用于引用特殊的非数字值,该属性指定的并不是不合法的数字。
- NaN 属性与 Number.Nan 属性相同。
- 提示:请使用
isNaN()
来判断一个值是否是数字,原因是 NaN 与所有值都不相等,包括它自己。
Boolean
- 布尔(逻辑)只能有两个值:true 或 false
1 2
| var x=true; var y=false;
|
|
true |
false |
字符串 |
非空 |
空 |
数组 |
非0 |
0 |
null |
|
null |
undefined |
|
undefined |
Array
1 2 3 4
| var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW";
|
1
| var cars=new Array("Saab","Volvo","BMW");
|
1
| var cars=["Saab","Volvo","BMW"];
|
- 数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
Undefined和Null
null
- 在 JavaScript 中 null 表示 “什么都没有”
- null是一个只有一个值的特殊类型,表示一个空对象引用。
- 你可以设置为 null 来清空对象:
undefined
- 在 JavaScript 中, undefined 是一个没有设置值的变量。
- typeof 一个没有值的变量会返回 undefined
- 任何变量都可以通过设置值为 undefined 来清空,类型为 undefined
区别
- null 和 undefined 的值相等,但类型不等:
1 2 3 4
| typeof undefined typeof null null === undefined null == undefined
|
typeof
- 你可以使用 typeof 操作符来检测变量的数据类型。
1 2 3 4 5 6 7 8 9 10 11
| typeof "john" typeof 3.14 typeof NaN typeof Infinity typeof false typeof [1, 2, 3, 4] typeof {name: 'john', age: 34} typeof new Date() typeof function () {} typeof myCar typeof null
|
constructor 属性
- constructor 属性返回所有 JavaScript 变量的构造函数。
1 2 3 4 5 6 7
| "John".constructor (3.14).constructor false.constructor [1,2,3,4].constructor {name:'John', age:34}.constructor new Date().constructor function () {}.constructor
|
实例
- 你可以使用 constructor 属性来查看对象是否为数组(包含字符串 “Array”):
1 2 3
| function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
|