JS 基础 —— JavaScript 关键字(keyword)与保留字

一、JavaScript 所有关键字:

break
case
catch
continue
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with

主要想整理下几个自己不怎么了解的关键字:

1、delete:删除对象(而非构造方法或原型)的某个属性

		function obj(id,name){
			this.id = id;
			this.name = name;
			this.getName = function(){
				return this.name;
			}
		}
		var objOne = new obj(1,"objOneName");
		var objTwo = new obj(2,"objTwoName");
		alert("objOne名字为:"+objOne.getName());//提示objOneName
		delete objTwo.name;
		alert("objOne名字为:"+objOne.getName());//提示objOneName
		alert("objTwo名字为:"+objTwo.getName());//提示undefined

注意:只能删除自身定义的公有属性,即"this.属性名"定义的属性,而不能删除私有属性或通过proptotype定义的公有属性(已实践)。此外可删除直接在对象上添加的属性,如var a = new Object();a.name = "name";delete a.name;


2、throw 与 try...catch...finally:操作异常

JS 的几种具体异常类型(都继承自Error 异常类):

(1)、SyntaxError:语法错误,如代码中不小心按了个特殊符号;

(2)、ReferenceError:引用错误,常见提示:Uncaught ReferenceError: a is not defined;

(3)、RangeError:范围错误,常见对数组的操作等;

(4)、TypeError:类型错误,如:xxx is not a function;

(5)、.URLError:与url相关参数不正确,主要是encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数;

(6)、EvalError:全局函数eval 执行错误(注:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码)。

throw 可抛出自定义对象,并可通过catch捕获:

    <script>  
      
        function CommonException(message, code)  
        {  
            this.message = message;  
            this.code = code;  
        }  
      
        try  
        {  
            var exception = new CommonException('您的代码出错啦', 1);  
      
            throw exception;  
      
            alert('这地方的代码将不会执行到');  
        }  
        catch (e) {  
            alert(e.message);  
            alert(e.code)  
        }  
      
    </script>  

(参考:http://blog.csdn.net/zhang197093/article/details/52055850)


3、in:与for 一起使用用于遍历对象的属性名

(1)、使用点一:在js中,for……in用于遍历一个对象的属性,把对象的属性名和属性值都提出来

var obj = {
    "key1":"value1",
    "key2":"value2",
    "key3":"value3"
};
 
//属性名
function EnumaKey(){
    for(var key in obj ){
        alert(key);
    }
}
 
//属性值
function EnumaVal(){
    for(var key in obj ){
        alert(obj[key]);
    }
}
重点:在使用for in遍历对象时候,对象有一个重要的方法:hasOwnProperty()。该方法可以在遍历对象属性的时候可以过滤掉从原型链上下来的属性。


(2)、使用点二:判断某个对象是否具有某个属性

对于一般的对象属性需要用字符串指定属性的名称   如:

var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar  // returns true
"model" in mycar // returns true
对于数组对象,元素值对应的属性名为数字类型,如:

// Arrays
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
0 in trees        // returns true
3 in trees        // returns true
6 in trees        // returns false
"bay" in trees    // returns false (you must specify the index number,
                  // not the value at that index)
"length" in trees // returns true (length is an Array property)
注意:in 的右边必须是一个对象, 如:你可以指定一个用String构造器生成的,但是不能指定字符串直接量的形式:

var color1 = new String("green");
"length" in color1 // returns true
var color2 = "coral";
"length" in color2 // generates an error (color is not a String object)

此外,如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false;

如果你把一个属性值设为undefined,但是没有使用delete操作符,使用in检查,会返回true。

(参考:http://www.cnblogs.com/renxiaoren/p/5942767.html


4、instanceof :返回的是布尔值,而typeof 返回的是几种数据类型的字符串值。


5、with:引用一个对象,使访问属性与方法更加方便(只能访问与修改属性,不能增加属性与方法)

		function obj(id,name){
			this.id = id;
			this.name = name;
			this.getName = function(){
				return this.name;
			}
		}
		var myObj = new obj(3,"three");
		with(myObj){
			alert(id);//提示3
			alert(name);//提示three
			alert(getName());//提示three
			id = 4;
			alert(id);//提示4
		}
		alert(myObj.id);//提示4,说明with中是通过引用方式访问的,而不是复制值的方式


二、JavaScript 所有保留字

保留字是为以后js的扩展用的,不能作为普通变量名。列表:

abstract
boolean
byte
char
class
const
debugger
double
enum
export
extends
final
float
goto
implements
import
int
interface
long
native
package
private
protected
public
short
static
super
synchronized
throws
transient
volatile





  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值