Javascript学习笔记一 对象
检索:
1 用||来填充默认值
var status = flight.status || "unknown";
2 使用&&防止TypeError
flight.equipment.model //throw "TypeError"
flight.equipment && flight.equipment.model //undefined
引用
var a={},b={},c={};
document.writeln(a===b); //false
原型
Javascript提供的实现机制:
var stooge = {
"first-name":"Jerome",
"last-name":"Howard"
};
var temp = function(){};
temp.prototype=stooge;
var another_stooge= new temp;
可以直接给Object加个方法来简化
if (typeof Object.beget !== 'function'){
Object.beget = function (o){
var F = function (){};
F.prototype = o;
return new F();
}
}
var another_stooge =Object.beget(stooge);
another_stooge["first-name"] = 'Harry';
document.writeln(another_stooge["first-name"]); //Harry
document.writeln(another_stooge["last-name"]); //Howard
document.writeln(stooge["first-name"]); //Jerome
反射
typeof可以访问原型链
document.writeln(typeof flight.toString); //function
hasOwnProperty则不行
document.writeln(flight.hasOwnProperty('toString')); //false
枚举
使用for in枚举属性 的顺序是不确定的,而且需要使用hasOwnProperty,并使用typeof排除函数
最好
var properties = [
"first-name",
"last-name"
];
for (var i = 0; i < properties.length; i+=1){
document.writeln(properties[i] + ": " + stooge[properties[i]]);
}
删除
删除不会触及原型链,删除对象属性,原型链的属性浮现出来
anothet_stooge["first-name"] = "Jack";
document.writeln(anothet_stooge["first-name"]);//Jack
delete anothet_stooge["first-name"];
document.writeln(anothet_stooge["first-name"]);//Jerome
命名空间
var MYAPP= {};
MYAPP.stooge = {
//...
};
相关文档:
今天在学习Bom时遇到了一个错误:
Static overflow at 7
错误原因:自定义了一个 scrollTo(),与系统window.scrollTo()冲突,以致引起死循环,此错误在弹出错误框,而在FF下没有反应,但function也不执行。另外<img src="" onerror=""/>也可能出现这种情况。详细请参考:http://www.cnblogs.com/S.Sams/archive/200 ......
有时候进行ajax交互的时候,返回的数据可以自己添加分隔符,比如^^^,然后对这些分隔符进行解析,分解为一个数组。
function fill(v) {
if (v == undefined)return false;
var result = v.split("^^^");
$("#cnPatent").val(result[0]);
$("#cnPText").val(result[1]); ......
常用:javascript字符串函数 收藏
concat
将两个或多个字符的文本组合起来,返回一个新的字符串。
var a = "hello";
var b = ",world";
var c = a.concat(b);
alert(c);
//c = "hello,world"
indexOf
返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。
var index1 = a.indexOf ......
创建文档元素
document.createElement(nodename)
插入元素到文档节点树
parent.appendChild(child)
创建文本节点
document.createTextNode(text)
在现有元素前插入新元素
parentElement.insertBefore(newElement,targetElement)
在现有元素后插入新元素(自编函数)
parentElement.insertAfter(newElement,targe ......