1.json을 문자열로
함수 json2str(o) {
var arr = [];
var fmt = 함수(들) {
If (typeof s == 'object' && s != null) return json2str(s);
return /^(string|number)$/.test(typeof s) ? "'" s "'" : s;
};
for (var i in o) arr.push("'" i "':" fmt(o[i]));
'{' arr.join(',') '}'을 반환합니다.
}
2. 타임스탬프를 날짜로 변환
함수 fromUnixTime(timeStamp) {
If (!timeStamp || timeStamp
var theDate = new Date(parseInt(timeStamp) * 1000);
날짜를 반환하세요;
}
3.데이터 형식
// 작성자: meizz
// 날짜 확장, 날짜를 지정된 형식의 문자열로 변환
// 월(M), 일(d), 시(h), 분(m), 초(s), 분기(q)는 1~2개의 자리 표시자를 사용할 수 있습니다.
// 연도(y)는 1~4개의 자리 표시자를 사용할 수 있으며, 밀리초(S)는 1개의 자리 표시자(1~3자리 숫자)만 사용할 수 있습니다.
// 예:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2012-12-02 08:12:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2012-12-02 8:12:4.18
Date.prototype.Format = function(fmt) {
var o = {
"M": this.getMonth() 1, //월
"d ": this.getDate(),
"h ": this.getHours(), //시간
"m ": this.getMinutes(), //분
"s ": this.getSeconds(), //초
"q ": Math.floor((this.getMonth() 3) / 3), //분기
"S": this.getMilliseconds() //밀리초
};
만약 (/(y)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() "").substr(4 - RegExp.$1.length));
for(var k in o)
If (new RegExp("(" k ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" o[k]).substr(("" o[k]). 길이)));
fmt를 돌려주세요;
};
4. 날짜에 n일을 추가하세요
함수 addDay(숫자) {
return fromUnixTime(new Date().getTime() / 1000 24 * 60 * 60 * 숫자);
}
5. iframe 사용 시 상위 폼과 하위 폼 간 상호 호출
코드 복사 코드는 다음과 같습니다.
//상위 폼이 하위 폼의 함수를 호출합니다
window.frames['ifm_id'].valueChange("id_101")
//하위 폼은 상위 폼의 함수를 호출합니다
parent.refreshTree("nodeId_202")
6. 팝업 형식 및 반환 값
// 팝업 형태
var url = "
http://www.baidu.com"
win=window.showModalDialog(url,window,"dialogLeft:400;dialogTop:200;dialogWidth:560px;dialogHeight:380px;scroll:yes;menubar:no;toolbar:no;status:no;");
// 팝업 형태로 반환 값을 설정합니다
var 결과 = 새로운 배열()
결과[0] = "id_101"
결과[1] = "이름_202"
window.returnValue = 결과
창.닫기()
7. JavaScript 범위 [전역 범위 및 함수 범위만, JavaScript에는 블록 범위가 없습니다.]
// 1. 전역 범위
var id = "global Variable"; // 1.1 함수 외부에서 정의된 변수
함수 showMsg(){
message = "global message";// 1.2 정의되지 않았지만 직접 할당된 변수
//처음 사용시 전역변수로 정의되어 있습니다
}
// 2. 함수 범위
함수 doCheck(){
var data = "function data";// 2.1 함수 내부에 정의된 변수
}
8. 자바스크립트 상속 메커니즘
코드 복사 코드는 다음과 같습니다.
// 1. 객체는 상속인 것처럼 가장합니다
함수 사람(strName){
// 비공개 필드
변수 이름 = strName
// 공개 메소드
This.getName = 함수(){
이름 반환;
};
}
함수 Student(strName,strSchool){
// 상위 클래스의 속성과 메서드를 정의합니다.
This.parent = 사람
This.parent(strName)
delete this.parent; // 임시 변수 parent 삭제
// 새로운 속성과 메소드 정의
// 비공개 필드
var 학교 = strSchool
// 공개 메소드
This.getSchool = function(){
복학;
};
}
// 2. 함수 객체 상속을 호출(..) 또는 적용(..)
// 호출과 적용의 차이점은 다음과 같습니다.
// 호출의 두 번째 매개변수는 가변 매개변수입니다.
// Apply의 두 번째 매개변수는 Array
입니다.
함수 동물(strName,intAge){
// 비공개 필드
변수 이름 = strName
변수 나이 = intAge
// 공개 메소드
This.getName = 함수(){
이름 반환;
};
This.getAge = function(){
반환 연령
};
}
함수 Cat(strName,intAge,strColor){
// 상위 클래스의 속성과 메소드를 정의합니다.
Animal.call(this,strName,intAge)
// Animal.apply(this,new Array(strName,intAge))
// 새로운 속성과 메소드 정의
// 비공개 필드
var 색상 = strColor
// 공개 메소드
This.getInfo = function(){
"이름:" 반환 this.getName() "n"
"나이:" this.getAge() "n"
"색상:" 색상
};
}
// 3. 프로토타입 상속
// 프로토타입에서 선언한 속성과 메서드는 모든 객체에서 공유됩니다.
// 프로토타입은 속성을 읽을 때만 사용됩니다
Function.prototype.extend = function(superClass){
// 여기서 F는 하위 클래스가 상위 클래스 this.xxx의 속성에 액세스하는 것을 방지하는 것입니다.
함수 F(){}
F.prototype = superClass.prototype
// 상위 클래스 생성자
This.superConstructor = 슈퍼클래스
This.superClass = superClass.prototype
This.prototype = new F()
This.prototype.constructor =
};
Function.prototype.mixin = 함수(props){
for (props의 var p){
This.prototype[p] = props[p]; This.prototype[p] = props[p]
}
};
함수 상자(){}
Box.prototype = {
GetText : 함수(){
return this.text;
},
setText : 함수(텍스트){
This.text = 텍스트
}
};
함수 CheckBox(){}
CheckBox.extend(박스)
CheckBox.mixin({
isChecked : 함수(){
이것을 반환합니다.checked;
},
setChecked : 기능(체크됨){
This.checked = 체크됨
}
})
9. 호출, 적용 및 바인딩
// thisArg는 fun 내부에서 this가 가리키는 객체를 나타냅니다.
// 호출 및 적용은 즉시 fun을 실행하고 결과를 반환합니다
var 결과 = fun.call(thisArg,arg1,...)
var 결과 = fun.apply(thisArg,[argsArray])
// thisArg는 fun 내부에서 this가 가리키는 객체를 나타냅니다.
// 바인드는 익명 함수를 반환합니다
var tmpfun = fun.bind(thisArg)
var 결과 = tmpfun(arg1,...);
<스크립트 유형="텍스트/자바스크립트">
/**
* 기능 확장
*/
Function.prototype.bind = function(obj){
var 메소드 = 이것
var tmpfun = function(){
반환 방법.apply(obj,arguments)
};
tmpfun 반환
}
함수 상위(){
This.name = "부모"
}
함수 하위(){
This.name = "자녀"
This.getName = 함수(시간){
반환 시간 " " this.name
};
}
var parent = 새로운 부모()
var 자식 = 새로운 자식()
Alert(child.getName(1)); // 자식 1명 표시
Alert(child.getName.call(parent,2)); // 상위 2개 표시 [호출 및 적용이 즉시 실행됩니다]
var tmpfun = child.getName.bind(parent); // 바인드가 즉시 실행되지 않습니다
경고(tmpfun(3));
스크립트>
10.js "==" 연산자
코드 복사
두 객체를 비교하는 경우 동일한 객체를 참조하는지 확인하세요.
피연산자가 NaN이면 ==는 false를 반환하고, !=는 true를 반환합니다.
null과 정의되지 않음을 다른 값과 비교하면 false가 반환됩니다.
그러나 null == null, 정의되지 않음 == 정의되지 않음, null == 정의되지 않음
비교에 참여할 때 null과 undefine은 다른 값으로 변환될 수 없습니다.