图片来源于:https://pixabay.com/zh/photos/maple-leaf-book-reading-dear-diary-638022/
官方定义的名称:
原始值类型俗称:简单数据类型、基本数据类型
对象数据类型俗称:复杂数据类型、引用数据类型
Number特殊的地方
/* NaN 不等于 NaN */ console.log(NaN === NaN); //=> false /* NaN 不等于任何数字 */ console.log(NaN === 1); //=> false console.log(NaN === Infinity) // false
/* isNaN 方法是一个js内置函数 */ isNaN(NaN) //=> true isNaN(1) //=> false isNaN(Infinity) //=> false
Number类型的总结
/* 单引号 '' */ var str1 = '这是一段字符串'; /* 双引号 "" */ var str2 = "这是一段字符串"; /* 反引号 `` */ var str3 = `这是一段字符串`;
注意
/* 将字符串连接起来 */ var str1 = '连接' + '字符'; /* 符号互相包裹 */ var str2 = `'粽' 情 '粽' 意`;
字符串的总结
例子:
/* 获取页面的HTML(根)标签的父亲节点 意料之中 */ var html = document.documentElement.parentNode; console.log(html) //=> 结果null,因为语法知道根标签是没有父亲节点的,意料之中 /* 获取对象一个不存在的属性 意料之外 */ var obj = { name: 'obj' }; console.log(obj['age']); //=> 结果undefined,因为语法不知道obj里面有age这个属性当它去获取的时候发现这个属性压根不存在 意料之外,所以是undefined
null和undefined的总结
当去获取一个不知道且不存在的属性时就是 undefined
当去获取一个知道但为空的属性时就是 null
例子:
/* 声明两个Symbol值 比较是否相等 */ console.log(Symbol('A') === Symbol('A')); // 结果为false,因为它们两个只是标识相同,但是值都是唯一的,所以为false /* 获取对象中以Symbol值为键名的属性 */ var sy = Symbol('A'); var obj = { [sy]: 'symbolA', [Symbol('B')]: 'symbolB' }; console.log(obj[Symbol('B')]); //=> undefined,只是标识相同,obj里面属性名为Symbol('B')值是不同的 console.log(obj[sy]); //=> symbolA,跟obj引用的是同一个变量所以就可以获取到值
Symbol类型总结
/* 转成BigInt数据类型 */ console.log(BigInt(100)); //=> 100n /* BinInt数据类型转换成Number类型 */ console.log(Number(9123452334564571n.toString())); //=> 9123452334564571
BigInt类型总结
/* 定义普通标准对象 */ var obj = { name: 'obj' };
/* 内置日期对象*/ console.dir(Date); //=>使用dir打印详情,而不是log
/* new 一个非标准特殊对象 */ console.log(new Number(1)); //=> Number {1}
尊敬的读者,谢谢您坚持看到最后。希望您可以在我的文章中学到一些知识。如果文章中有什么错误的地方,欢迎在评论区或者私信我改正,谢谢您!