var str="dd";
delete str ;
alert(str)
没有效果,,还是弹出了原来的值
delete str ;
alert(str)
没有效果,,还是弹出了原来的值
解决方案 »
- my97 选择日期之后响应事件
- 如何才能用javascript保存网页中的图片呢?(要ie和ff下都能用)
- 列表框和文本框数据交换(紧急求助)
- 如何在JS里获取CSS样式中应用的背景图片地址
- 求可以1-7位整数或1-7位整数加1-2位小数的正则表达式?
- javascript
- 怎么使这样的onmouseup事件起作用?
- 如何换行?
- 打开一个新窗口,怎样去掉菜单,工具条,状态条?(不用window.open()情况下),请看源码
- 各位大侠,帮帮小弟吧,也不知iis的问题还是ie的问题,进来看看吧?
- Select 如何传值给文本框
- **********超强*******客户端确认、提交验证方法(请大家提下意见)
delete str; //删除了一个属性(window.str)而不是str。
alert(str); //依然存在
换成
str = 'dd';
delete str;
alert(str)
试试这个时候str== window.str了
1.javascript的变量是无类型的(untype)。2.用var声明的变量是永久性的。所以当你试图用delete来删除其声明的变量时会报错。3.当试图读取一个未声明的变量时,会报错。4.当给一个未用var声明的变量赋值时,js会隐式的声明该变量(这个变量会被声明为全局变量,所以最好用var来声明。这一点在局部声明时非常重要)。5.在函数内部,局部变量的优先级要高于同名的全局变量(相当于隐藏了该同名的全局变量)。
结合4,5两点。我们给出一个列子来说明其重要性。 var part = "global"; //声明一个全局变量
function checkpart()
{
var part = "local"; //声明一个局部变量
document.write(part);
}
checkpart(); //输出local
document.write(part); // 输出global
当你在声明part局部变量时省略了var。这就相当于声明了一个全局变量,即改变了全局变量part的值。下面的两条语句输出的都是local。6.没有块级作用域。函数中声明所有变量(无论在哪里声明的),在整个函数中他都是有定义的。
var part = "global";
function checkvariable()
{
document.write(part);
}
checkvariable(); //输出global
var part = "global";
function checkvariable()
{
documen.write(part);
var part = "local";
document.write(part);
}
checkvariable();
上述代码第一次输出的不是global,而是undefined。这告诉我们在函数中声明变量时尽量将其集中放在函数的开头。7.变量的内容
js中数据类型分为两组:基本数据类型和引用类型。数值,布尔值,null和未定义的值属于基本类型。对象,数组,函数属于引用类型(函数也是一种数据类型)。(字符串属于特殊类型)。基本数据类型在内存中具有固定的大小:一个数值占8个字节(在基本类型中最大),一个布尔值占一位。而引用类型具有任意长度,没有固定的大小。无法将其直接与每个相关变量储存在8个字节的内存中。所以变量储存的是这个值的引用(通常引用有两种形式:指针和内存地址)。这两中数据类型具有很大的差别。 var i = 1;
var j = i;
i = 2;
alert(j); //输出1
var i = new Array(1,2,3);
j = i;
i[0] = 2;
alert(j); //输出2,2,3 8.作为属性的变量
js解释器在工作之前会在所有js代码运行之前创建一个全局对象。这个全局对象的属性就是所有的全局变量。同理也会存在一个调用对象。而这个调用对象的属性就是所有的局部变量。一个js解释器可以工作在不同的执行环境中。这些执行环境彼此独立且又相互联系。(执行环境:不同的窗口,框架)。
var str="dd";
str=undefined;
alert(str)
alert('value:'+str+'\ttype:'+typeof(str)) //声明变量前,引用
var str="dd";
alert('value:'+str+'\ttype:'+typeof(str)) //声明并赋值变量后,引用
str=undefined;
alert('value:'+str+'\ttype:'+typeof(str)) //取消变量后,引用,和第一个相同
</script>