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

JavaScript中的一些关键字

2016-05-22 18:22 381 查看
本篇博客来讨论一下JavaScript中的一些关键字,其中包括:in,delete,typeof,instanceof,debugger,with。

in

in是一个运算符,它希望左操作数是一个字符串,或者可以转化为字符串,右操作数是一个对象。如果右侧的对象拥有一个与左侧操作数同名的属性,方法或索引,则返回true,否则返回false。

var obj = {
a : 'abc',
func1 : function(){
console.log('func1 exicuted...');
}
}
var array = [1,2,3];
console.log('a' in obj);//有名为a的属性
console.log('func1' in obj);//有名为func1的方法
console.log(0 in array);//有索引为0的元素


以上代码会输出三个true。

delete

delete是一个一元运算符,它用来删除属性或方法或数组索引元素。

var obj = {
a : 'abc',
func1 : function(){
console.log('func1 exicuted...');
}
}
console.log('a' in obj);
delete obj.a
console.log('a='+obj.a)


上面的代码会先输出一个true再输出一个false。可见,delete运算符已将该属性删除。如果调用obj.a,则会返回undefined。

instanceof

instanceof操作符希望左操作数是一个对象,右操作数是一个标识对象的类,如果左侧的对象是右侧类的实例,或者左侧对象是右侧类的子类的实例,则返回true。

var date = new Date();
console.log(date instanceof Date)
console.log(date instanceof Object)
console.log(date instanceof Number)


上面的代码的输出是:true,true,false。

typeof

typeof是一元运算符,放在操作数前面,然后返回该操作数的类型,以字符串表示。例如

typeof 'hello'  //返回"string"
typeof 123      //返回"number"


下面是任意值在typeof运算后的返回值

x:typeof x
undefined“undefined”
null“object”
true或false“boolean”
任意数字或NaN‘number’
任意字符串“string”
任意函数“function”
任意内置对象(非函数)“object”

debugger

debugger是一个语句,它通常什么都不做,仅仅是在运行时生成一个断点,调试代码时经常非常有用

with

with是一个语句,比较官方的解释是:with把一个对象添加到作用域链的头部,然后执行一段代码,最后把作用域链恢复到原始状态。假设有这么一个嵌套比较深的对象

var outerObject = {
propertyA : 'propertyA',
innerObj :{
propertyB : 'propertyB',
moreInnerObj :{
m : 'm',
n : 'n',
func1 : function(){

}
}
}
}


如果想使用moreInnerObj中的属性或方法,会比较费劲,像这样

outerObject.innerObj.moreInnerObj.m = 'mm';
outerObject.innerObj.moreInnerObj.n = 'nn';


with语句可以来解决这个问题

with(outerObject.innerObj.moreInnerObj){
m = 'mm';
n = 'nn'
}


with语句段结束后,作用域链恢复到原始状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息