都是些常用的功能,這裡就不多廢話了,小夥伴們自己看下就明白了
奉上代碼:
//cookie
函數 setCookie(名稱、值、iDay)
{
if(iDay!==false)
{
var oDate=new Date();
oDate.setDate(oDate.getDate() iDay);
document.cookie=name '='值';expires='oDate';path=/';
}
其他
{
document.cookie=名稱 '=' 值;
}
}
函數 getCookie(名稱)
{
var arr=document.cookie.split('; ');
var i=0;
for(i=0;i
var arr2=arr[i].split('=');
if(arr2[0]==名稱)
{
回 arr2[1];
}
}
返回 '';
}
函數removeCookie(名稱)
{
setCookie(name, 'a', -1);
}
//事件
函數 myAddEvent(obj, ev, fn){
obj.attachEvent?obj.attachEvent('on' ev, fn):obj.addEventListener(ev, fn, false);
}
函數 myDelEvent(obj, ev, fn){
obj.detachEvent?obj.detachEvent('on' ev, fn):obj.removeEventListener(ev, fn, false);
}
函數 getByClass(oParent, sClass)
{
var aEle=oParent.getElementsByTagName('*');
var re=new RegExp('\b' sClass '\b', 'i');
var aResult=[];
for(var i=0;i
if(re.test(aEle[i].className))
{
aResult.push(aEle[i]);
}
}
回傳一個結果;
}
函數bindEvent(obj, ev, fn)
{
obj.addEventListener?obj.addEventListener(ev, fn, false):obj.attachEvent('on' ev, fn);
}
函數 unbindEvent(obj, ev, fn)
{
obj.removeEventListener?obj.removeEventListener(ev, fn, false):obj.detachEvent('on' ev, fn);
}
// 隨機生成數
函數 rnd(n, m)
{
return Math.random()*(m-n) n;
}
函數 time2date(t)
{
函數 d(n){回傳 n var oDate=new Date(t*1000);
return oDate.getFullYear() '-' d(oDate.getMonth() 1) '-' d(oDate.getDate()) ' ' d(oDate.getHours()) ':' d(oDate.getMinutes()) ':' d(oDate.getSeconds());
}
函數 time2day(t)
{
函數 d(n){回傳 n var oDate=new Date(t*1000);
return oDate.getFullYear() '-' d(oDate.getMonth() 1) '-' d(oDate.getDate());
}
//拖曳
函數拖曳(objEv, objMove, fnMoveCallBack)
{
var disX=0,disY=0;
objEv.onmousedown=函數 (ev)
{
var oEvent=ev||事件;
disX=(document.documentElement.scrollLeft||document.body.scrollLeft) oEvent.clientX-objMove.offsetLeft;
disY=(document.documentElement.scrollTop||document.body.scrollTop) oEvent.clientY-objMove.offsetTop;
if(objEv.setCapture)
{
objEv.onmousemove=fnMove;
objEv.onmouseup=fnUp;
objEv.setCapture();
}
其他
{
document.onmousemove=fnMove;
document.onmouseup=fnUp;
回復錯誤;
}
};
函數 fnMove(ev)
{
var oEvent=ev||事件;
var l=(document.documentElement.scrollLeft||document.body.scrollLeft) oEvent.clientX-disX;
var t=(document.documentElement.scrollTop||document.body.scrollTop) oEvent.clientY-disY;
fnMoveCallBack(l,t);
}
函數 fnUp()
{
this.onmousemove=null;
this.onmouseup=null;
if(this.releaseCapture)this.releaseCapture();
}
}
函數 mouseScroll(obj, fnCallBack)
{
bindEvent(obj, '滾鼠輪', fnScroll);
bindEvent(obj, 'DOMMouseScroll', fnScroll);
函數 fnScroll(ev)
{
var oEvent=ev||事件;
var bDown;
if(oEvent.wheelDelta)
{
bDown=oEvent.wheelDelta }
其他
{
bDown=oEvent.detail>0;
}
fnCallBack(bDown);
if(oEvent.preventDefault)oEvent.preventDefault();
回傳錯誤;
}
}
// 移動式運動
zns.site.fx.swing=函數 (obj, cur, target, fnDo, fnEnd, acc)
{
if(zns.site.fx.browser_test.IE6)
{
fnDo&&fnDo.call(obj, target);
fnEnd&&fnEnd.call(obj, target);
返回;
}
if(!acc)acc=0.1;
var now={};
var x = 0; //0-100
if(!obj.__swing_v)obj.__swing_v=0;
if(!obj.__last_timer)obj.__last_timer=0;
var t=new Date().getTime();
if(t-obj.__last_timer>20)
{
fnMove();
obj.__last_timer=t;
}
clearInterval(obj.timer);
obj.timer=setInterval(fnMove, 20);
函數 fnMove(){
if(x {
obj.__swing_v =acc;
}
其他
{
obj.__swing_v-=acc;
}
//if(Math.abs(obj.__flex_v)>MAX_SPEED)obj.__flex_v=obj.__flex_v>0?MAX_SPEED:-MAX_SPEED;
x =obj.__swing_v;
//alert(x ',' obj.__swing_v);
for(var i in cur)
{
now[i]=(target[i]-cur[i])*x/100 cur[i];
}
if(fnDo)fnDo.call(obj, now);
if(/*Math.abs(obj.__swing_v) {
clearInterval(obj.timer);
if(fnEnd)fnEnd.call(obj, target);
obj.__swing_v=0;
}
}
};
//彈性運動
zns.site.fx.flex=function (obj、cur、target、fnDo、fnEnd、fs、ms)
{
if(zns.site.fx.browser_test.IE6)
{
fnDo&&fnDo.call(obj, target);
fnEnd&&fnEnd.call(obj, target);
戻る;
}
var MAX_SPEED=16;
if(!fs)fs=6;
if(!ms)ms=0.75;
var now={};
変数x=0; //0-100
if(!obj.__flex_v)obj.__flex_v=0;
if(!obj.__last_timer)obj.__last_timer=0;
var t=new Date().getTime();
if(t-obj.__last_timer>20)
{
fnMove();
obj.__last_timer=t;
}
clearInterval(obj.timer);
obj.timer=setInterval(fnMove, 20);
関数 fnMove(){
obj.__flex_v =(100-x)/fs;
obj.__flex_v*=ms;
if(Math.abs(obj.__flex_v)>MAX_SPEED)obj.__flex_v=obj.__flex_v>0?MAX_SPEED:-MAX_SPEED;
x =obj.__flex_v;
for(var i in cur)
{
now[i]=(target[i]-cur[i])*x/100 cur[i];
}
if(fnDo)fnDo.call(obj, now);
if(Math.abs(obj.__flex_v) {
clearInterval(obj.timer);
if(fnEnd)fnEnd.call(obj, target);
obj.__flex_v=0;
}
}
};

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)