1.const声明的常量不可以改变?
在学习ES6的时候都会有这样的说法,const定义的变量不可以修改,而且必须初始化。
但是但const定义的常量为对象呢?
例如 const obj = {a:1};obj.a = 2;console.log(a) //输出为2
因为对象是引用数据类型,里面的值只是引用所在地址所以可以修改。但是如果我们要使对象里面的值不能修改呢?
那就要用到Object.freeze()方法了。需要注意的是,使用 Object.freeze()冻结的对象只能保证这个对象的属性不变,如果对象属性的值还是一个复杂数据类型,那么是可以修改成功的。
2.const、let的暂时性死区
由于let/const没有变量提升(提升到作用域顶部),因此通过let/const定义的变量不会被提升到作用域顶部——也就是此时的块级作用域,因此在声明之前无法访问。所以如果在声明之前使用就会报错,就形成了暂时性死区。
…原理原因都清楚,就是突然出现这个名称就懵了。。
3.vue通过路由传参
父组件 this.
r
o
u
t
e
r
.
p
u
s
h
(
n
a
m
e
:
′
子
组
件
名
′
,
q
u
e
r
y
:
i
n
d
e
x
:
参
数
值
)
子
组
件
t
h
i
s
.
router.push({name:'子组件名',query: { index:参数值}}) 子组件 this.
router.push(name:′子组件名′,query:index:参数值)子组件this.route.query.index=参数值
这时候子组件的俩会携带query ,如果要清除使用this.$route.path.replace()
4.typeof可以返回的数据类型
1、object
2、undefined
3、string
4、number
5、boolean
6、function
typeof null = object