1.json を文字列に変換
関数 json2str(o) {
var arr = [];
var fmt = 関数 {
if (typeof s == 'object' && s != null) を返す 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() //ミリ秒
};
If (/(y)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFull Year() "").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 * number);
}
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 result = 新しい配列;
結果[0] = "id_101";
結果[1] = "名前_202"
window.returnValue = 結果;
window.close();
7. JavaScript スコープ [グローバル スコープと関数スコープのみ。JavaScript にはブロック スコープはありません]
コードをコピーします
コードは次のとおりです:
}
// 2. 関数スコープ
関数 doCheck(){
var data = "関数データ";// 2.1 関数内で定義された変数
}
8. JavaScript 継承メカニズム
コードをコピー
コードは次のとおりです:
// 1. オブジェクトは継承のふりをします
function 人(strName){
// プライベートフィールド
変数名 = strName;
// パブリックメソッド
This.getName = function(){
名前を返す;
};
}
function Student(strName,strSchool){
// 親クラスの属性とメソッドを定義します
This.parent = 人
This.parent(strName);
this.parent を削除 // 一時変数の親を削除します
// 新しいプロパティとメソッドを定義します
// プライベートフィールド
var school = strSchool
// パブリックメソッド
This.getSchool = function(){
学校に戻る;
};
}
// 2. Function オブジェクト
の Call(..) または apply(..) 継承
// 呼び出しと適用の違いは次のとおりです:
// call の 2 番目のパラメータは変数パラメータです。
// apply の 2 番目のパラメータは配列
です。
function Animal(strName,intAge){
// プライベートフィールド
変数名 = strName;
var age = intAge
// パブリックメソッド
This.getName = function(){
名前を返す;
};
This.getAge = function(){
年齢を返す
};
}
function Cat(strName,intAge,strColor){
// 親クラスの属性とメソッドを定義します
Animal.call(this,strName,intAge);
// Animal.apply(this,new Array(strName,intAge));
// 新しいプロパティとメソッドを定義します
// プライベートフィールド
var color = strColor
// パブリックメソッド
This.getInfo = function(){
return "name:" this.getName() "n"
"年齢:" this.getAge() "n"
"色:" 色
};
}
// 3. プロトタイプの継承
// プロトタイプで宣言されたプロパティとメソッドはすべてのオブジェクトで共有されます
// プロトタイプはプロパティを読み取る場合にのみ使用されます
Function.prototype.extend = function(superClass){
// ここの F は、サブクラスが親クラス this.xxx のプロパティにアクセスできないようにするためのものです
関数 F(){};
F.prototype = superClass.prototype
// 親クラスのコンストラクター
This.superConstructor = superClass;
This.superClass = superClass.prototype
This.prototype = 新しい F();
this.prototype.constructor = this;
};
Function.prototype.mixin = function(props){
for (props の var p){
This.prototype[p] = props[p]; This.prototype[p] = props[p];
}
};
関数 Box(){}
Box.prototype = {
GetText : function(){
return this.text;
}、
setText : function(text){
This.text = テキスト;
}
};
関数 CheckBox(){}
CheckBox.extend(ボックス);
CheckBox.mixin({
isChecked : function(){
return this.checked;
}、
setChecked : function(checked){
This.checked = チェック済み
}
});
9. 電話、申請、バインド
// thisArg は fun 内で this によって示されるオブジェクトを表します
// call & apply は fun をすぐに実行し、結果を返します
var result = fun.call(thisArg,arg1,...);
var result = fun.apply(thisArg,[argsArray]);
// thisArg は fun 内で this によって示されるオブジェクトを表します
// バインドは匿名関数を返します
var tmpfun = fun.bind(thisArg);
var result = tmpfun(arg1,...);
コードをコピーします
Function.prototype.bind = function(obj){
var メソッド = これ;
var tmpfun = function(){
戻りメソッド.apply(obj,arguments);
};
tmpfun を返します。
}
function Parent(){
This.name = "親"
}
function Child(){
This.name = "子供"
This.getName = function(time){
戻り時間 " " this.name;
};
}
var 親 = 新しい親()
var child = new Child();
alert(child.getName(1)); // 1 人の子を表示
alert(child.getName.call(parent,2)); // 2 つの親を表示 [呼び出しと適用はすぐに実行されます]
var tmpfun = child.getName.bind(parent) // バインドはすぐには実行されません
アラート(tmpfun(3));
スクリプト>
10. js "== 演算子
コードをコピーします
コードは次のとおりです:
変換ルール
オペランドがブール値の場合、比較の前に数値に変換されます: false -> 0、true -> 1;
一方のオペランドが数値で、もう一方のオペランドが文字列の場合、比較する前に文字列を数値に変換します。
一方のオペランドがオブジェクトで、もう一方のオペランドが数値または文字列の場合、オブジェクトは比較前に基本型に変換されます
valueOf() がオブジェクトをオーバーライドしない場合、またはオブジェクトを返す場合、エンジンは最初に valueOf() の呼び出しを試みます。
エンジンは toString() を呼び出そうとしますが、toString() がオブジェクトをオーバーライドしない場合、またはオブジェクトを返さない場合は、例外がスローされます。
2 つのオブジェクトを比較する場合は、それらが同じオブジェクトを参照しているかどうかを判断します。
オペランドが NaN の場合、== は false を返し、!= は true を返します。
null と unknown を他の値と比較すると false、
が返されます。
ただし、null == null、未定義 == 未定義、null == 未定義
比較に参加する場合、null と unknown を他の値に変換することはできません。