JavaScript语言精粹
javascript
- 使用
Object.hasOwnProperty()
检测属性名是否为对象的成员,还是原型链的成员1
2
3
4
5
6
7
8
9var obj = {
a: 1, b: 2, c: 3
};
obj.__proto__.d = 4;
for (i in obj) {
console.log(i);//a,b,c,d
console.log(obj.hasOwnProperty(i));//true,true,true,false
}
try
语句执行一个代码块,并捕获该代码块抛出的任何异常,catch
从语句定义了一个新的变量,它将接受异常对象.- try 语句测试代码块的错误。
- catch 语句处理错误。
- throw 语句创建自定义错误。
1 | function message() { |
typeof
运算符产生的值有number
、string
、boolean
、undefined
、function
、object
。如果运算数是一个数组或者null
,其反正值为Object
+
运算符可以进行加法运算或字符串连接.如果你想要的是加法运算,请确保两个运算数都是数字.
/
运算符可能会产生一个非整数结果,即使两个运算数都是整数.
- JavaScript基本数据类型包括:数值、字符串、布尔值、
null
和undefined
,其它的所有值为对象。字符串、布尔值和数值‘貌似’是对象,因为他们都有方法,但他们是不可变得。JavaScript中的对象是可变的键控对象,数组、函数、正则表达式都是对象,当然对象object更是对象。 ||
运算符可以用来填充默认值:1
2var middle = stooge["middle-name"] || "(none)";
var status = flight.status || "unknown";
typeof
会检测原型链hasOwnProperty()
不检测原型链
apply
调用模式
1 | var Que = function (string) { |
apply
将get_status()
的this
指向statusObject
参数arguments
1 | var sum = function () { |