🧑?🎓 个人主页:《爱蹦跶的大A阿》
🔥当前正在更新专栏:《VUE》?、《JavaScript保姆级教程》、《krpano》
??
?
????????JavaScript作为一门动态类型语言,其数据类型一直是开发者们关注的话题。本文将深入探讨JavaScript中的数据类型,揭开这块神秘的面纱。
JavaScript中主要有以下几种数据类型:
????????这些不同类型的数据在存储方式、传参方式上都有区别,合理运用不同的数据类型可以编写出更优雅的代码。例如基本类型传递的是值,引用类型传递的是地址。
????????本文将详细介绍各数据类型的特征、使用场景和注意事项,帮助读者深入理解JavaScript中的数据类型,避免在开发中出现问题。
通过本文,读者可以学习到:
准备好了吗,让我们开始探索JavaScript这片神秘的数据类型之地吧!
?
let x; //变量声明但未初始化,默认为undefined
let y = undefined; //直接赋值为undefined
console.log(x); //undefined
console.log(y); //undefined
console.log(typeof x); //"undefined"
让我再详细解读一下Undefined类型:?
let x;
console.log(x); // undefined
function f() {
// no return statement
}
let x = f(); // x is undefined
let obj = {};
console.log(obj.name); // undefined
let x = void(0); // x is undefined
function f(x) {
console.log(x); // undefined
}
f();
undefined + 1 // NaN
undefined - 1 // NaN
?????????综上所述,Undefined类型表示"无"的值,在变量未初始化、函数没有返回值等场景下会返回undefined。需要注意undefined与null的区别,null表示空值,需要手动设置,而undefined由系统自动初始化。
let x = null;
console.log(x); //null
console.log(typeof x); //"object"
让我来详细解读一下Null类型:
let x = null;
let obj = null; // 后面会给obj赋值为对象
typeof null // "object"
function setName(obj) {
obj.name = "Jack";
}
setName(null); // obj不合法,会报错
null == undefined // true
????????总之,null是一个特殊的空值,需要开发者手动设置,主要用于表示不存在的对象引用,与undefined的区别需要牢记。
let x = true;
let y = false;
let a = Boolean(1); //true
let b = Boolean(0); //false
关于Boolean类型,让我详细解读如下:
let a = true;
let b = false;
if (a) {
// 执行代码
}
Boolean(1); // true
Boolean(0); // false
Boolean("hello"); // true
Boolean(""); // false
true && false // false
true || false // true
!true // false
if (score) { } // score不为0都会执行
????????Boolean有true和false两个值,用于逻辑判断和流程控制。可以用Boolean函数将其他类型转换为布尔值,并支持逻辑运算。正确使用布尔类型可以使代码更简洁。
let x = 3;
let y = 3.14;
let a = x + y;
让我来详细解读下JavaScript中的Number类型:
????????Number类型可以表示整数和浮点数,但有精度限制。支持各种运算方法,但也有最大和最小表示范围。需要注意其中特殊值的含义。
let s = 'hello';
let s2 = "world";
let s3 = s + ' ' + s2; //连接
console.log(s3[0]); //访问单个字符
让我来详细解读下JavaScript中的String类型:
????????String用于文本数据,可以拼接、查找子串、大小写转换等,模板字符串提供高级语法。需要注意String是不可变的。
let x = Symbol('demo');
let y = Symbol('demo');
console.log(x === y); //false,值唯一
让我来详细解读下JavaScript中新增的Symbol类型:
????????Symbol可以创建唯一的值,不会发生冲突,用于解决命名问题,也可以用于定义对象的属性名。但不能进行运算,需要转成字符串才能输出。
?
????????JavaScript作为一门动态类型语言,其丰富的数据类型是其极大优势之一。通过本文的详细介绍,相信大家对各种数据类型已经有了更深入的了解。
????????我们重点探讨了六种基本数据类型的定义、特征、使用场景和注意事项,并辅以大量代码实例加深理解。此外,我们还对基本类型和引用类型的区别进行了概述。
????????数据类型的运用贯穿整个JavaScript程序开发。合理选择和使用数据类型,对编写简洁优雅的代码 big必须。同时,深入理解数据类型也是避免潜在问题的重要一步。
????????本文内容仅是JavaScript数据类型这个宏大主题的一瞥。如果大家对某些数据类型还有疑问,欢迎在评论区留言讨论。我们会持续关注数据类型相关的新特性,并带来更多高质量的内容。
????????再次感谢大家的阅读!希望本文可以成为你JavaScript数据类型学习的知识体系指南。让我们继续探索JavaScript的世界,发现更多精彩。
?
let a = 123; //整数
let b = 3.14; //浮点数
typeof a; //"number"
typeof b; //"number"
Math.pow(2, 53); //精确的值
Math.pow(2, 53) + 1; //无法精确表示,会舍入
let s = 'hello';
let s2 = "world";
let s3 = s + ' ' + s2; // "hello world"
let s = 'hello';
s[0]; // 'h'
let n = 123;
`${n} is a number`; // "123 is a number"
let s1 = Symbol('foo');
let s2 = Symbol('foo');
s1 === s2; // false
let s1 = Symbol('foo');
let sym = Symbol('a');
sym + 'x'; // TypeError
let sym = Symbol('a');
String(sym); // "Symbol(a)"
Boolean(sym); // true
let sym = Symbol('a');
let obj = {
[sym]: function() {}
};