JavaScript清除历史记录的一点问题
1 . 变量的3中创建方式中,有一种叫隐士创建。
js不会提示错误,而是帮助你隐士创建声明变量,但是隐士创建的变量,总是作为全局变量来使用的,这就很容易造成数据隐私的泄露。
见下例:
7function f{
a = 1; //未声明直接赋值
var b = 2; //声明并赋值
}
f;
alert(a); // 返回1
alert(b); //提示语法错误,找不到该变量
2. 全局变量是全局对象的属性
所有全局变量都是window对象的属性,全局变量的作用域实际也是window对象的包含范围。
2var a = 1;
alert(window.a);
3. 变量的垃圾回收
js中包含一个垃圾回收的小的程序,这个小的程序能够周期性的遍历js环境中的所有变量的列表,并且给这些变量所引用的值做标记。
如果被引用的对象或是数组,那么对象的属性或者数组的元素就被递归地做个标记。
通过递归的遍历所有的值或者图。
垃圾回收器就能找到仍旧使用的每个值。
那些无用没有标记的值就是无用的存储单元。
当所有正在使用的变量做完标记之后,垃圾回收器就会开始进行清除。
在这个阶段中,它将遍历环境中所有的列表,同时释放那些没有标记的值。
4var a ="javascript";
a = 12345;
a = null;
当a中指向的值javascript被12345覆盖时,javascipt在堆区中的数据就会被当做垃圾清理,当a =
null时,这时回收器就会把该变量也回收走。
2024-09-04 广告