前端科举八股文-JAVASCRIPT篇

Js的变量类型,区别是什么

基本number boolean undefined null string es6新增的 symbol
引用 object array es6新增的 set map weakSet weakMap

区别 基本类型将值直接存储在栈中,引用对象类型将值存储在堆中,在栈中存储的只是指向值的指针。

平时有用过symbol吗

symbol是es6新增的一个基本对象类型。它表示一个独一无二的值。
日常开发中我用它来清除魔法字符串。比如我们再给一个业务常量赋值初始值的时候并不关心它的初始值是什么,只需要保证这个值不和其他值重复。这时候就可以使用symbol来初始化这个常量。

const student_1 = 'zhangsan'
const student_2 = 'lisi'
// 如果这个时候有个学生名字叫章三
const student_3 = 'zhangsan' // 这行代码容易出事

我们定义常量并不关心常量的值,只需要保证他们都不重复时可以使用symbol

const student_1 = Symbol()
const student_2 = Symbol()
const student_3 = Symbol()

// 如果觉得这种写法语意化不强,实在是不好理解也可以这样改写

const student_1 = Symbol('zhangsan')
const student_2 = Symbol('lisi')
const student_3 = Symbol('zhangsan')
由于Symbold的特殊性,此时的两个symbol值也不会相等  student_1 !== student_3

还有一个用法是,使用symbol定义的对象属性不能被遍历方法遍历。可以利用这个特性封装一些不需要对外暴露的对象属性或者方法。使代码更加优雅

 const me = {
   
   
 	name:'wxs',
 	age:14,
 	[Symbol</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值