一、基本数据类型
JavaScript中有6种基本数据类型,分别是undefined、null、boolean、number、string和symbol。
判断一个值的数据类型可以使用typeof操作符。
// 示例代码 console.log(typeof undefined); // 输出 "undefined" console.log(typeof null); // 输出 "object",这是一个历史遗留问题 console.log(typeof true); // 输出 "boolean" console.log(typeof 123); // 输出 "number" console.log(typeof 'abc'); // 输出 "string" console.log(typeof Symbol()); // 输出 "symbol"
二、复杂数据类型
JavaScript中复杂数据类型有2种,分别是object和function。
其中,object是一种无序的键值对集合,每个键值对都被称作一个属性。可以使用点号或中括号来访问对象的属性。
// 示例代码 const obj = { name: 'Tom', age: 18, 'phone number': '123456789' }; console.log(obj.name); // 输出 "Tom" console.log(obj['age']); // 输出 18 console.log(obj['phone number']); // 输出 "123456789"
function是一种可执行的对象。函数定义时要使用function关键字,可以带参数,也可以返回值。
// 示例代码 function sayHello(name) { console.log('Hello, ' + name + '!'); } sayHello('Tom'); // 输出 "Hello, Tom!" function add(a, b) { return a + b; } console.log(add(1, 2)); // 输出 3
三、判断数据类型
typeof只能判断基本数据类型和function,对于object无法准确判断。可以使用instanceof操作符和Object.prototype.toString.call()方法来判断。
// 示例代码 const arr = [1, 2, 3]; console.log(arr instanceof Array); // 输出 true console.log(Object.prototype.toString.call(arr)); // 输出 "[object Array]" const date = new Date(); console.log(date instanceof Date); // 输出 true console.log(Object.prototype.toString.call(date)); // 输出 "[object Date]"
四、类型转换
JavaScript中存在自动类型转换和显示类型转换两种情况。
当运算符两边的数据类型不同时,会进行自动类型转换。
// 示例代码 console.log(1 + true); // 自动将true转换为1,输出2 console.log('1' + 2); // 自动将2转换为字符串,输出"12"
使用parseInt和parseFloat可以将字符串转换为数字。
// 示例代码 console.log(parseInt('123')); // 输出 123 console.log(parseFloat('3.14')); // 输出 3.14
五、总结
JavaScript中有基本数据类型和复杂数据类型,可以使用typeof、instanceof和Object.prototype.toString.call()等方法来判断数据类型。同时,JavaScript中存在自动类型转换和显示类型转换两种情况,需要注意类型转换的情况。