1.Jsonから文字列
コードコピーは次のとおりです。
関数json2str(o){
var arr = [];
var fmt = function(s){
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]));
return '{' + arr.join( '、') + '}';
}
2。タイムスタンプを最新のものに変換します
コードコピーは次のとおりです。
from fromunixtime(タイムスタンプ){
if(!タイムスタンプ||タイムスタンプ<1000 ||タイムスタンプ== '')return "";
var thedate = new Date(parseint(timestamp) * 1000);
thedateを返します。
}
3.data-format
コードコピーは次のとおりです。
//著者:Meizz
//日付の延長、指定された形式で日付を文字列に変換する
// 1-2プレースホルダーは、月(m)、日(d)、時間(h)、分(m)、秒(s)、および四半期(q)に使用できます。
//年(y)は1〜4のプレースホルダーで使用できます。Millisecond(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()、// hours
「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.getTullear() + "").substr(4 -regexp。$ 1.Length));
for(o in o)
if(new regexp( "(" + k + ")")。test(fmt)))
fmt = fmt.Replace(regexp。$ 1、(regexp。$ 1.Length == 1)?(o [k]):(( "00" + o [k])。
FMTを返します。
};
4. N Daysにこれまでに追加します
コードコピーは次のとおりです。
関数addday(number){
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 result = new Array();
result [0] = "id_101";
結果[1] = "name_202";
window.returnvalue = result;
window.close();
7。JavaScriptスコープ[グローバルスコープと関数スコープのみ、JavaScriptにはブロックスコープがありません]
コードコピーは次のとおりです。
// 1。グローバルスコープ
var id = "グローバル変数"; // 1.1関数の外側で定義された変数
関数showmsg(){
message = "global message"; // 1.2定義なしに直接割り当てられる変数
//初めて使用されたときにグローバル変数として定義する
}
// 2。関数範囲
function docheck(){
var data = "関数データ"; // 2.1関数内で定義された変数
}
8。JavaScript継承メカニズム
コードコピーは次のとおりです。
// 1。オブジェクトのなりすまし継承
関数担当者(strname){
//プライベートフィールド
var name = strname;
//パブリックメソッド
this.getName = function(){
返品名;
};
}
function Student(strname、strschool){
//親クラスのプロパティと方法を定義する
this.parent = person;
this.parent(strname);
this.parentを削除します。 //一時変数の親を削除します
//新しいプロパティとメソッドを定義します
//プライベートフィールド
var school = strschool;
//パブリックメソッド
this.getSchool = function(){
学校を返す;
};
}
//2。呼び出し(..)またはfuntionオブジェクトの継承(..)を適用します
//コールと適用の違いは次のとおりです。
//呼び出しの2番目のパラメーターは変数パラメーターです。
// applyの2番目のパラメーターは配列です。
関数動物(strname、intage){
//プライベートフィールド
var name = 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"
+ "age:" + this.getage() + "/n"
+ "color:" + color;
};
}
// 3。プロトタイプの継承
//プロトタイプ宣言されたプロパティとメソッドはすべてのオブジェクトによって共有されます
//プロトタイプは、属性を読み取るときにのみ使用されます
function.prototype.extend = function(superclass){
//ここにいるfは、親クラスでプロパティthis.xxxにアクセスするサブクラスを避けるためです
関数f(){};
f.prototype = superclass.prototype;
//親クラスコンストラクター
this.superconstructor = superclass;
this.superclass = superclass.prototype;
this.prototype = new f();
this.prototype.constructor = this;
};
function.prototype.mixin = function(props){
for(小道具のvar p){
this.prototype [p] = props [p];
}
};
functionbox(){}
box.prototype = {
getText:function(){
this.textを返します。
}、
settext:function(text){
this.text = text;
}
};
function checkbox(){}
checkbox.extend(box);
checkbox.mixin({
ischecked:function(){
これを返してください。チェックしてください。
}、
SetChecked:function(checked){
this.checked = 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 = this;
var tmpfun = function(){
return method.apply(obj、arguments);
};
tmpfunを返します。
}
function parent(){
this.name = "parent";
}
function 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(parent、2)); // 2つの親を表示します[呼び出し&Applyはすぐに実行されます]
var tmpfun = child.getname.bind(parent); // bindはすぐに実行されません
アラート(tmpfun(3)); // 3人の親を表示します
</script>
10。JS "=="演算子
コードコピーは次のとおりです。
変換ルール
オペランドがブール値の場合、比較の前に数値に変換します:false-> 0、true-> 1;
1つのオペランドが数値で、もう1つのオペランドが弦の場合は、比較の前に文字列を数値に変換します。
1つのオペランドがオブジェクトであり、もう1つのオペランドが数字または文字列である場合、オブジェクトは比較前にプリミティブタイプに変換されます。
valueof()にオブジェクトをオーバーライドまたは返す場合、エンジンは最初にvalueof()を呼び出そうとします。
その後、エンジンはtoString()を呼び出そうとし、toString()がオブジェクトをオーバーライドまたは返すことがない場合、例外がスローされます。
2つのオブジェクトが比較される場合、同じオブジェクトを参照するかどうかを判断します。
オペランドがnanの場合、==はfalseを返します!= trueを返します。
Nullおよび未定義は、他の値と比較してFalseを返します。
しかし、null == null、undefined == undefined、null == undefined;
nullおよび未定義は、比較に参加する際に他の値に変換することはできません。