1.防止变量名起冲突
2.可以使用symbol避免魔术字符串
魔术字符串:
在代码中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。
function getdata(val) {
case 'magicString' :
return ['this','is','magicString']
default :
return []
}
let data = getData('magicString')
// 'magicString' 就是魔术字符串
风格良好的代码,应该尽量消除魔术字符串,改成含义清晰的变量代替。
3.定义不重复的常量
4.symbol作为键名时,不被常规方法遍历出来,因此可以给对象定义非私有,但只用于内部使用的方法和属性