七种语言类型
- int
- string
- boolean
- null
- undefined
- object
- symbol
undefined
let a;
let b = void(0)
a === b // true
变量未赋值都是undefined,是一个变量,不是关键字,用void(0)代替
我们一般不会把变量赋值为undefined,这样可以保证所有的值为undefined的变量,都是从未赋值的自然状态。
void(0)
<a href="#">click</a>默认跳转到顶部
<a href="#id">click</a>默认跳转到id的元素
<a href="javascript:void(0)">click</a>表示不跳转
null
是一个关键字,可以用null来获取,但是undefined不行
number
0.1+0.2 === 0.3 // false
js不能比较小数,但可以用精度来判断
Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON // true
Symbol
独一无二的key值
let a = symbol();
let b = symbol("this is b");
obj[a] = 100;
用symbol做对象属性的时候object.keys获取不到
代替变量
const COLOR_RED = Symbol();
const COLOR_GREEN = Symbol();
function getComponent(color) {
switch(color) {
case COLOR_RED:
return "red";
case COLOR_GREEN:
return "green";
default:
throw new Error("Undefind color")
}
}
博客介绍了JavaScript的七种语言类型,包括undefined、null、number、symbol等。提到变量未赋值为undefined,可用void(0)代替;null是关键字;js不能直接比较小数;symbol是独一无二的key值,用于对象属性时object.keys无法获取。
251

被折叠的 条评论
为什么被折叠?



