一、基本数据类型
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中存在自动类型转换和显示类型转换两种情况,需要注意类型转换的情况。