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