1. json to string
코드 사본은 다음과 같습니다.
함수 json2str (o) {
var arr = [];
var fmt = function (s) {
if (typeof s == 'object'&& s! = null) json2str (s)를 반환합니다.
반품 /^(String|number)$/.test (stypeof s)? " '" + s + "'": s;
};
for (var i in o) arr.push ( " '" + i + "':" + fmt (o [i]);
return '{' + arr.join ( ',') + '}';
}
2. 현재까지 타임 스탬프를 변환하십시오
코드 사본은 다음과 같습니다.
fromunixtime (timestamp) {
if (! timeStamp || timestamp <1000 || timestamp == '') return "";
var thedate = 새 날짜 (parseint (timestamp) * 1000);
반환 thedate;
}
3. 데이터 형식
코드 사본은 다음과 같습니다.
// 저자 : Meizz
// 날짜 확장, 지정된 형식으로 날짜를 문자열로 변환
// 1-2 자리 표시자는 월 (m), 일 (d), 시간 (h), 분 (m), 초 (s) 및 분기 (Q)에 사용할 수 있습니다.
// Year (Y)는 1-4 자리 표시 자와 함께 사용할 수 있으며 밀리 초 (S)는 1 개의 자리 표시 자만 사용할 수 있습니다 (1-3 자리 숫자).
// 예:
// (new date ()). 형식 ( "yyyy-mm-dd hh : mm : ss.s") ==> 2012-12-02 08 : 12 : 04.423
// (new date ()). 형식 ( "yyyy-md h : m : ss") ==> 2012-12-02 8 : 12 : 4.18
date.prototype.format = function (fmt) {
var o = {
"m +": this.getmonth () + 1, // 월
"d+": this.getDate (), // day
"H+": this.gethours (), // 시간
"m+": this.getMinutes (), // min
"s+": this.getSeconds (), // sec
"Q +": Math.floor ((this.getMonth () + 3) /3), // Quarterly
"S": this.getMilliseconds () // ms
};
if (/( y+)/.test(fmt))
fmt = fmt.replace (regexp. $ 1, (this.getlyear () + "") .substr (4 -regexp. $ 1.length));
for (var k in o)
if (new regexp ( "(" + k + ")"). 테스트 (fmt))
fmt = fmt.replace (regexp. $ 1, (regexp. $ 1.length == 1)? (O [k]) : (( "00" + o [k]). substr (( "" + o [k]). length));
반환 fmt;
};
4. 지금까지 n을 추가하십시오
코드 사본은 다음과 같습니다.
기능 부가일 (번호) {
Fromunixtime (새 날짜 (). gettime () / 1000 + 24 * 60 * 60 * 번호);
}
5. iframe을 사용할 때 부모 양식과 자식 사이의 상호 호출
코드 사본은 다음과 같습니다.
// 부모 양식은 Child Form에서 기능을 호출합니다
Window.frames [ 'ifm_id']. ValueChange ( "id_101");
// 자식 양식은 부모 양식의 기능을 호출합니다
parent.refreshtree ( "nodeid_202");
6. 팝업 양식 및 반환 값
코드 사본은 다음과 같습니다.
// 팝업 양식
var url = "http://www.baidu.com";
win = wind
// 팝업 양식에서 반환 값을 설정합니다
var result = new Array ();
결과 [0] = "id_101";
결과 [1] = "name_202";
window.returnValue = 결과;
Window.Close ();
7. JavaScript Scope [글로벌 범위 및 기능 범위 만, JavaScript가 블록 범위가 없습니다]
코드 사본은 다음과 같습니다.
// 1. 글로벌 범위
var id = "글로벌 변수"; // 1.1 함수 외부에 정의 된 변수
함수 showmsg () {
Message = "Global Message"; // 1.2 정의없이 직접 할당 된 변수
// 처음으로 사용될 때 글로벌 변수로 정의
}
// 2. 함수 범위
함수 docheck () {
var data = "기능 데이터"; // 2.1 함수 내부 정의 된 변수
}
8. JavaScript 상속 메커니즘
코드 사본은 다음과 같습니다.
// 1. 대상 가장합니다. 상속
기능인 (strname) {
// 개인 필드
var name = strname;
// 공개 방법
this.getName = function () {
반환 이름;
};
}
기능 학생 (strname, strschool) {
// 상위 클래스의 속성과 메소드 정의
this.parent = person;
this.parent (strname);
this.parent; // 임시 변수 부모를 삭제합니다
// 새 속성과 방법을 정의합니다
// 개인 필드
var school = strschool;
// 공개 방법
this.getSchool = function () {
돌아 오는 학교;
};
}
// 2. Call (..) 또는 apply (..) 기능 객체의 상속
// 통화와 신청의 차이점은 다음과 같습니다.
// 호출의 두 번째 매개 변수는 변수 매개 변수입니다.
// 적용의 두 번째 매개 변수는 배열입니다.
기능 동물 (strname, intage) {
// 개인 필드
var name = strname;
var age = intage;
// 공개 방법
this.getName = function () {
반환 이름;
};
this.getage = function () {
귀환 연령;
};
}
기능 고양이 (strname, intage, strcolor) {
// 상위 클래스의 속성과 메소드 정의
Animal.call (this, strname, intage);
// 동물성 (이, 새 배열 (strname, intage));
// 새 속성과 방법을 정의합니다
// 개인 필드
var color = strcolor;
// 공개 방법
this.getInfo = function () {
반환 "이름 :" + this.getName () + "/n"
+ "age :" + this.getage () + "/n"
+ "색상 :" + 색상;
};
}
// 3. 프로토 타입 상속
// 프로토 타입 선언 속성 및 메소드는 모든 객체가 공유합니다.
// 프로토 타입은 속성을 읽을 때만 사용됩니다
function.prototype.extend = function (슈퍼 클래스) {
// 여기서 F는 서브 클래스가 속성에 액세스하는 것을 피하는 것입니다.
함수 f () {};
f. prototype = superclass.prototype;
// 상위 클래스 생성자
this.superconstructor = 슈퍼 클래스;
this.superclass = superclass.prototype;
this.prototype = new f ();
this.prototype.constructor = this;
};
function.prototype.mixin = function (propss) {
for (props in props) {
this.prototype [p] = props [p];
}
};
함수 박스 () {}
box.prototype = {
getText : function () {
reture this.text;
},
setText : 함수 (텍스트) {
this.text = 텍스트;
}
};
함수 checkbox () {}
checkbox.extend (box);
checkbox.mixin ({
ischecked : function () {
이것을 반환하십시오.
},
setChecked : 함수 (확인) {
this.checked = 확인;
}
});
9. 전화, 적용 및 바인딩
코드 사본은 다음과 같습니다.
// thisarg는 재미가 내부에있을 때 이것으로 표시된 개체를 나타냅니다.
// Call & Apply는 즉시 재미를 실행하고 결과를 반환합니다.
var result = fun.call (thisarg, arg1, ...);
var result = fun.apply (thisarg, [argsarray]);
// thisarg는 재미가 내부에있을 때 이것으로 표시된 개체를 나타냅니다.
// BIND 익명 함수를 반환합니다
var tmpfun = fun.bind (thisarg);
var result = tmpfun (arg1, ...);
코드 사본은 다음과 같습니다.
<script type = "text/javaScript">
/**
* 기능의 기능을 확장합니다
*/
function.prototype.bind = function (obj) {
var method = 이것;
var tmpfun = function () {
return method.apply (obj, arguments);
};
반환 tmpfun;
}
기능 부모 () {
this.name = "부모";
}
기능 child () {
this.name = "child";
this.getName = function (time) {
return time + "" + this.name;
};
}
var parent = new Parent ();
var child = new Child ();
경고 (child.getName (1)); // 1 명의 아이를 보여줍니다
Alert (child.getname.call (부모, 2)); // 2 부모 표시 [Call & Apply가 즉시 실행됩니다]
var tmpfun = child.getname.bind (부모); // bind는 즉시 실행되지 않습니다.
경고 (TMPFUN (3)); // 부모님 3 명을 보여줍니다
</스크립트>
10. JS "=="연산자
코드 사본은 다음과 같습니다.
전환 규칙
피연산자가 부울 값 인 경우 비교 전 숫자로 변환하십시오. false-> 0, true-> 1;
하나의 피연산자가 숫자이고 다른 피연산자가 문자열 인 경우 비교 전에 문자열을 숫자로 변환하십시오.
한 피연산자가 물체이고 다른 피연산자가 숫자 또는 문자열 인 경우, 비교 전에 객체는 원시 유형으로 변환됩니다.
valueof ()가 객체를 재정의하지 않았거나 객체를 반환하지 않으면 엔진은 먼저 valuef ()을 호출하려고합니다.
그런 다음 엔진은 toString ()을 호출하려고 시도하고 TOSTRING ()가 객체를 재정의하거나 반환하지 않으면 예외가 발생합니다.
두 객체를 비교하면 동일한 객체를 참조하는지 여부를 결정하십시오.
피연산자가 nan이면 ==가 false를 반환합니다.! =는 true를 반환합니다.
NULL 및 UNDEFINED는 다른 값과 비교하면 False를 반환합니다.
그러나 null == null, undefined == 정의되지 않은, null == 정의되지 않은;
NULL 및 UNDEFINED는 비교에 참여할 때 다른 값으로 변환 할 수 없습니다.