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
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
相关文章推荐
- javascript typeof()的用法与运算符用法
- JavaScript运算符与类型
- 【javascript基础】之【delete 运算符】
- JavaScript之数据类型转换——隐式转换与运算符
- 详解JavaScript的表达式与运算符
- javascript中不常见的运算符
- Javascript--等性运算符
- Javaweb中JavaScript的运算符
- JavaScript instanceof 运算符深入剖析
- JavaScript基础——使用运算符
- JavaScript typeof运算符
- JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
- JavaScript 入门·JavaScript 具有全范围的运算符
- javascript 中的==(相等运算符)与===(等同运算符)比较
- javascript 运算符 技巧
- JavaScript-运算符
- javascript的语法说明,变量和运算符
- Javascript常用运算符(Operators)-javascript基础教程
- Javascript之delete运算符
- javascript 运算符