js的delete和void关键字

delete关键字

 
  • delete关键字的作用:
    • 删除对象的属性 语法:delete 对象.属性
    • 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性)
  • delete关键字的使用注意:

    • 返回值类型为布尔值(true / false),删除成功返回true
    • 删除对象中不存在的属性,返回值是true
    • 删除对象的原型对象中的属性(不能删除),返回值是true
    • 无法删除使用var声明的全局的变量,但是却可以删除直接定义在window上面的属性
  • 示例:

     
js的delete和void关键字
 1 <script>
2 var dog = {
3 name:"招财",
4 age:14
5 }
6 //删除对象的属性
7 console.log(delete dog.name); //true
8 console.log(dog.name); //undefined
9 ​
10 // 删除对象中不存在的属性
11 console.log(delete dog.eat); //true
12 ​
13 // 删除对象的原型对象中的属性
14 Object.prototype.play = "玩";
15 console.log(delete Object.prototype.play ); //true
16 ​
17 //没有使用var关键字声明的变量,那么该变量默认会成为一个全局的变量(变成window的属性)
18 b = "testb";
19 console.log(b); // testb
20 ​
21 function func() {
22 var num1 = 10;
23 num2 = 20;
24 }
25 ​
26 func();
27 //console.log(num1); // 报错 无法在函数体外部访问局部变量
28 console.log(num2); //20 num2 变成了window的属性
29 ​
30 //使用delete删除直接定义在window上面的属性
31 console.log(delete num2); // true
32 //console.log(num2); // 报错
33 ​
34 var a = "testa";
35 delete a; // 无法删除
36 console.log(a); // testa
37 ​
38  </script>
js的delete和void关键字

void关键字

超级链接的形式:<a href="javascript:void(0)">超级链接的文字</a>
其中,javascript:void(0)指的是该操作符指定要计算一个表达式但是不返回值。

具体事例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
//新出现的type类型,不写也没有什么应用
<!--
//-->
</script>
</head>
<body>

<p>点击以下链接查看结果:</p>
<a href="javascript:void(0)">点我!</a>

</body>
</html> 
加上具体事件

<a href="javascript:void(alert('Warning!!!'))">点我!</a>
1
加入了变量

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
function getValue(){
var a,b,c;
a = void ( b = 5, c = 7 );
document.write('a = ' + a + ' b = ' + b +' c = ' + c );
}
</script>
</head>
<body>

<p>点击以下按钮查看结果:</p>
<form>
<input type="button" value="点我" onclick="getValue();" />
</form>

</body>
</html>

结果:

a = undefined b = 5 c = 7

上一篇:使用equals方法时,要注意


下一篇:Spring boot 去除URL 里的 JSESSIONID