表达式与运算符 - JavaScript
一元操作符仅对应一个操作数。
delete
delete操作符,删除一个对象的属性或者一个数组中某一个键值。语法如下:
jsdelete objectName.property;
delete objectName[index];
delete property; // legal only within a with statement
objectName是一个对象名,property 是一个已经存在的属性,index是数组中的一个已经存在的键值的索引值。
第三行的形式只在with声明的状态下是合法的,从对象中删除一个属性。
你能使用 delete 删除各种各样的隐式声明,但是被var声明的除外。
如果 delete 操作成功,属性或者元素会变成 undefined。如果 delete可行会返回true,如果不成功返回false。
jsx = 42;
var y = 43;
myobj = new Number();
myobj.h = 4; // create property h
delete x; // returns true (can delete if declared implicitly)
delete y; // returns false (cannot delete if declared with var)
delete Math.PI; // returns false (cannot delete predefined properties)
delete myobj.h; // returns true (can delete user-defined properties)
delete myobj; // returns true (can delete if declared implicitly)
删除数组元素
删除数组中的元素时,数组的长度是不变的,例如删除 a[3], a[4],a[4] 和 a[3] 仍然存在变成了 undefined。
delete 删除数组中的一个元素,这个元素就不在数组中了。例如,trees[3]被删除,trees[3] 仍然可寻址并返回 undefined。
jsvar trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
if (3 in trees) {
// 不会被执行
}
如果想让数组中存在一个元素但是是undefined值,使用undefined关键字而不是delete操作。如下: trees[3] 分配一个 undefined,但是这个数组元素仍然存在:
jsvar trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
if (3 in trees) {
// this gets executed(会被执行)
}
typeof
typeof 操作符 可通过下面 2 种方式使用:
jstypeof operand;
typeof (operand);
typeof 操作符返回一个表示 operand 类型的字符串值。operand 可为字符串、变量、关键词或对象,其类型将被返回。operand 两侧的括号为可选。
假设你定义了如下的变量:
jsvar myFun = new Function("5 + 2");
var shape = "round";
var size = 1;
var today = new Date();
typeof 操作符将会返回如下的结果:
jstypeof myFun; // returns "function"
typeof shape; // returns "string"
typeof size; // returns "number"
typeof today; // returns "object"
typeof dontExist; // returns "undefined"
对于关键词 true 和 null, typeof 操作符将会返回如下结果:
jstypeof true; // returns "boolean"
typeof null; // returns "object"
对于一个数值或字符串, typeof 操作符将会返回如下结果:
jstypeof 62; // returns "number"
typeof "Hello world"; // returns "string"
对于属性值,typeof 操作符将会返回属性所包含值的类型:
jstypeof document.lastModified; // returns "string"
typeof window.length; // returns "number"
typeof Math.LN2; // returns "number"
对于方法和函数,typeof 操作符将会返回如下结果:
jstypeof blur; // returns "function"
typeof eval; // returns "function"
typeof parseInt; // returns "function"
typeof shape.split; // returns "function"
对于预定义的对象,typeof 操作符将会返回如下结果:
jstypeof Date; // returns "function"
typeof Function; // returns "function"
typeof Math; // returns "object"
typeof Option; // returns "function"
typeof String; // returns "function"
void
void 运算符运用方法如下:
jsvoid expression;
void (expression);
void 运算符,表明一个运算没有返回值。expression 是 javaScript 表达式,括号中的表达式是一个可选项,当然使用该方式是一种好的形式。
你可以使用 void 运算符指明一个超文本链接。该表达式是有效的,但是并不会在当前文档中进行加载。
如下创建了一个超链接文本,当用户单击该文本时,不会有任何效果。
下面的代码创建了一个超链接,当用户单击它时,提交一个表单。