您的位置:首页 > Web前端 > JavaScript

Javascript(七) 运算符

2008-02-14 17:05 357 查看
typeof 运算符

typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."

undefined类 - 如果变量是 undefined类型

string - 如果变量是string类型

number - 如果变量是number类型

boolean - 如果变量是boolean类型

function - 如果变量是一个vfunction

object - 如果变量是null 或者是一个对象。

var tmp;

alert(typeof(tmp)); //output undefined

tmp = "string";

alert(typeof(tmp)); //output string

tmp=10;

alert(typeof(tmp)); //output number;

tmp=false;

alert(typeof(tmp)); //output boolean;

tmp = null;

alert(typeof(tmp)); //output object;

tmp =function a(){};

alert(typeof(tmp)); //output function

为什么typeof运算符对于null会返回"object" ,这实际上是javascript最初实现的一个错误,然后被ECMAScript沿用了,现在,null被认为是对象的占位符,从而解释了这么一个矛盾。但是从技术上说,他仍然是原始值。(书上解释的 @_@)

instanceof 运算符

返回一个 Boolean 值,指出对象是否是特定类的一个实例。

function objTest(obj)

{

var i, t, s = ""; // 创建变量。

t = new Array(); // 创建一个数组。

t["Date"] = Date; // 填充数组。

t["Object"] = Object;

t["Array"] = Array;

for (i in t)

{

if (obj instanceof t[i]) // 检查 obj 的类。

{

s += "obj is an instance of " + i + "<br>";

}

else

{

s += "obj is not an instance of " + i + "<br>";

}

}

return(s); // 返回字符串。

}

var obj = new Date();

document.write(objTest(obj));

obj is an instance of Date

obj is an instance of Object

obj is not an instance of Array

delete运算符

从对象中删除一个属性,或从数组中删除一个元素

var obj = new Object();

obj.name="abc";

alert(obj.name); //outputs "abc"

delete obj.name;

alert(obj.name); //outputs "defined"

//delete运算符不能删除开发者为定义的属性和方法,例如下面的方法会引发错误

var obj = new Object();

delete obj.toString(); //cause error

用delete运算符删除数组的对象,只是会把数组中的内容变成 undefined ,但是不会减少数组的长度。

var myArray = new Array();

myArray[0]="a";

myArray[1]="b";

myArray[2]="c";

myArray[3]="d";

myArray[4]="e";

myArray[5]="f";

alert(myArray[0]); //output a

alert(myArray.length); //output 6

delete myArray[0];

alert(myArray[0]); //output undefined

alert(myArray.length); //output 6

void运算符号

void 运算符对任何值都返回undefined.该运算符通常用于避免输出不应该输出的值,例如从HTML的<a>元素调用javascrip函数时,要正确做到这一点,函数不能有返回值。

<a href="javascript:window.open('about:blank');" target =_blank>aa</a>

这个会出现2个窗口,一个窗口显示[object],一个显示空白页。

这个是因为 window.open 返回对新窗口的引用,然后该对象被转换成要显示的字符串。

要避免这个结果可以用 void运算符

<a href="javascript:void(window.open('about:blank'));" >bb</a><br>

这使window.open的返回值变成 undefined,他不是有效值,不会显示在游览器当中。

没有返回值的function 真正返回的都是undefined
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: