const scrollTop = document.documentElement.scrollTop
滚动条事件,拖滚动条打印scrollTop每次打印的值不一样!不是说值不能改变吗?为什么这样可以呢?
const scrollTop = document.documentElement.scrollTop
滚动条事件,拖滚动条打印scrollTop每次打印的值不一样!不是说值不能改变吗?为什么这样可以呢?
我的理解是这样的
document.documentElement.scrollTop 存在一个内存地址中。
const 声明的变量指向这个地址,地址的值变了,但是 const 的指针没有变。
这其实涉及到原始类型
和引用类型
了const
定义的是常量,常量的值是不能被修改的
以6种原始类型中的string
为例
const a = '1';
a = '2'; // => 报错
以3种引用类型中的object
为例
const a = {b: 1};
a.b = 2; // => 通过
a = 2; // => 报错
a.b
,其实只是修改了b.而对a并没有影响
如果你只是定义在函数里面,因为函数是有作用域的,也就是当函数执行完后,该变量就自动销毁了,再次调用的时候则会再次定义该变量,所以该值变了不是因为修改,而是因为重新定义。
当然,如果它是个对象的话,尽管是const定义也是可以改变里面的属性的