搜尋
首頁web前端js教程javascript實用方法總結

javascript實用方法總結

May 16, 2016 pm 04:15 PM
javascript實用方法

引言:本章沒有深奧的講解js一些底層原理,比如this指針、作用域、原型啦,涉及的都是一些有利於平時開發時簡化程式碼,提高執行效率,或者說可以當做一種經驗方法來使用,篇幅都不長,小步快跑的讓你閱讀完整篇文章,體驗程式設計的快樂。

 獲取兩個區間之內隨機數

function getRandomNum(Min, Max){ // 获取两个区间之内随机数
    // @逆火狂飙  提出有可能第一个参数大于第二个参数,所以增加一下判断更可靠
    if (Min > Max) 
    Max = [Min, Min = Max][0]; // 快速交换两个变量值
    
    var Range = Max - Min + 1;
    var Rand = Math.random();
    return Min + Math.floor(Rand * Range);
};

隨機返回一個正/負參數

function getRandomXY(num){ // 随机返回一个 正/负参数
    num = new Number(num);
    if (Math.random() <= 0.5) 
        num = -num;
    return num;
}

 setInterval()或setTimeOut()計時器函數傳參

var s = &#39;我是参数&#39;;
function fn(args) {
    console.log(args);
}
var a = setInterval(fn(s),100);    // xxxxxx错误xxxxx
var b = setInterval(function(){    // 正确,用匿名函数调用被计时函数
    fn(s);
}, 100)
C🎜 ()或setTimeOut()計時器遞歸調用

var s = true;
function fn2(a, b){        //  步骤三
    if (s) {
        clearInterval(a);
        clearInterval(b);
    }
};
function fn(a){     //  步骤二
    var b = setInterval(function(){
        fn2(a, b) // 传入两个计时器
    }, 200)
};
var a = setInterval(function(){      //  步骤一
    fn(a); // b代表计时器本身,可座位参数传递
}, 100)
字符串轉換為數字

// 无需 new Number(String)   也无需 Number(String) 只需字符串减去零即可
var str = &#39;100&#39;;  // str: String
var num = str - 0;// num: Number
空值判斷

var s = &#39;&#39;;  // 空字符串
if(!s)         // 空字符串默认转换为布尔false,可以直接写在判断语句里面
if(s != null) // 但是空字符串 != null
if(s != undefined) // 空字符串也 != undefine
IE瀏覽器parseInt()方法

IE瀏覽器parseInt()方法

// 下面的转换在IE下为0,其他浏览器则为1,这跟IE浏览器解释数字的进制有关
var iNum = parseInt(01);
// 所以,兼容的写法为
var num = parseInt(new Number(01))
IE

Firebug便利調試js程式碼

//Firebug内置一个console对象,提供内置方法,用来显示信息
/**
 * console.log(),可以用来取代alert()或document.write(),支持占位符输出,字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)。如:console.log("%d年%d月%d日",2011,3,26)
 * 如果信息太多,可以分组显示,用到的方法是console.group()和console.groupEnd()
 * console.dir()可以显示一个对象所有的属性和方法
 * console.dirxml()用来显示网页的某个节点(node)所包含的html/xml代码
 * console.assert()断言,用来判断一个表达式或变量是否为真
 * console.trace()用来追踪函数的调用轨迹
 * console.time()和console.timeEnd(),用来显示代码的运行时间
 * 性能分析(Profiler)就是分析程序各个部分的运行时间,找出瓶颈所在,使用的方法是:
       console.profile()....fn....console.profileEnd()
 */
 快速取當前時間毫秒數
// t == 当前系统毫秒值,原因:+号运算符会,会调用Date的valueOf()方法。
var t = +new Date();
 快速取當前時間毫秒數

快速取小數整數位

// x == 2,以下x值都为2,负数也可转换
var x = 2.00023 | 0;
// x = &#39;2.00023&#39; | 0

兩個變數值互換(不用中間量)

var a = 1;var b = 2;a = [b, b=a][0]alert(a+&#39;_&#39;+b)    // 结果 2_1,a和b的值已经互换。

兩個變數值互換(不用中間量)

兩個變數值互換(不用中間量)
// b不为null:a=b, b为null:a=1。
var a = b || 1;
// 较常见的用法为为一个插件方法传参,和获取事件目标元素:event = event || window.event
// IE有window.event对象,而FF没有
兩個變數值互換(不用中間量)

 邏輯或'||'運算子
// 方法有对象原型prototype属性,而原始数据没有该属性,如  var a = 1, a没有prototype属性
function Person() {} // 人的构造函数
Person.prototype.run = function() { alert(&#39;run...&#39;); } // 原型run方法
Person.run(); // error
var p1 = new Person(); // 只有在new操作符时,此时才会把原型run方法赋值给p1
p1.run(); // run..

只有方法對像才有樣>
// 计算系统当前时间是星期几
var week = "今天是:星期" + "日一二三四五六".charat(new date().getDay())

快速獲取當天為星期幾

/** * 闭包:任何一个js方法体都可以称为一个闭包,并非什么只有内嵌函数来引用了外部函数的某个参数或属性才会发生。 
* 它有一个独立作用域,在该作用域内可存在若干的子作用域(就是方法嵌套方法),最终该闭包作用域为最外层方法的作用域 
* 它包含了本身方法参数和所有内嵌函数的方法参数,所以当一个内嵌函数在外部有引用时,该引用的作用域为引用函数所在的(顶级)方法作用域 
*/ 
function a(x) {    
   function b(){        
      alert(x); // 引用外部函数参数    
   }    
   return b;
}
var run = a(&#39;run...&#39;); 
// 由于作用域的扩大,可以引用到外部函数a的变量并显示run(); 
// alert(): run..

閉包偏見
// 获取问号?后面的内容,包括问号
var x = window.location.search
// 获取警号#后面的内容,包括#号
var y = window.location.hash
// 配合定时器可实现网页自动刷新
window.location.reload()

取得位址參數字串和定時刷新

/**
 * Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
 * Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
 * ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。
 * 但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法
 * 在进行判断时根据需要,判断对象是否有值时最好用‘===&#39;强类型判断。
 */
var a;
alert(a === null); // false,因为a不是一个空对象
alert(a === undefined); // true,因为a未初始化,值为undefined
// 引申
alert(null == undefined); // true,因为‘==&#39;运算符会进行类型转换,
// 同理
alert(1 == &#39;1&#39;); // true
alert(0 == false); // true,false转换为Number类型为0

Null和Undefined
// 方法a多了一个参数2
function a(x){
    var arg = Array.prototype.push.call(arguments,2);
    alert(arguments[0]+&#39;__&#39;+arguments[1]);

Null和Undefined

var anObject = {}; //一个对象
anObject.aProperty = “Property of object”; //对象的一个属性
anObject.aMethod = function(){alert(“Method of object”)}; //对象的一个方法
//主要看下面:
alert(anObject[“aProperty”]); //可以将对象当数组以属性名作为下标来访问属性
anObject[“aMethod”](); //可以将对象当数组以方法名作为下标来调用方法
for( var s in anObject) //遍历对象的所有属性和方法进行迭代化处理
alert(s + ” is a ” + typeof(anObject[s]));
// 同样对于function类型的对象也是一样:
var aFunction = function() {}; //一个函数
aFunction.aProperty = “Property of function”; //函数的一个属性
aFunction.aMethod = function(){alert(“Method of function”)}; //函数的一个方法
//主要看下面:
alert(aFunction[“aProperty”]); //可以将函数当数组以属性名作为下标来访问属性
aFunction[“aMethod”](); //可以将函数当数组以方法名作为下标来调用方法
for( var s in aFunction) //遍历函数的所有属性和方法进行迭代化处理
alert(s + ” is a ” + typeof(aFunction[s]));
/**
 * 是的,对象和函数可以象数组一样,用属性名或方法名作为下标来访问并处理。
 * 那么,它到底应该算是数组呢,还是算对象?我们知道,数组应该算是线性数据结构,线性数据结构一般有一定的规律,适合进行统一的批量迭代操作等,有点像波。
 * 而对象是离散数据结构,适合描述分散的和个性化的东西,有点像粒子。
 * 因此,我们也可以这样问:JavaScript 里的对象到底是波还是粒子?如果存在对象量子论,那么答案一定是:波粒二象性!
 * 因此,JavaScript里的函数和对象既有对象的特征也有数组的特征。这里的数组被称为“字典”,一种可以任意伸缩的名称值对儿的集合。其实, object和function的内部实现就是一个字典结构,但这种字典结构却通过严谨而精巧的语法表现出了丰富的外观。正如量子力学在一些地方用粒子来 解释和处理问题,而在另一些地方却用波来解释和处理问题。你也可以在需要的时候,自由选择用对象还是数组来解释和处理问题。只要善于把握 JavaScript 的这些奇妙特性,就可以编写出很多简洁而强大的代码来。
 */
 給方法動態加入參數

/**
 * 有时候页面有个下拉菜单或者什么的效果,需要用户点击空白处或者点击其他元素时将其隐藏
 * 可用一个全局document点击事件来触发
 * @param {Object} "目标对象"
 */
$(document).click(function(e){
    $("目标对象").hide();
});
/**
 * 但是有一个缺点就是当你点击该元素又想让他显示
 * 如果你不及时阻止事件冒泡至全局出发document对象点击时,上面方法就会执行
 */
$("目标对象").click(function(event){
    event = event || window.event;
    event.stopPropagation(); // 当点击目标对象时,及时阻止事件冒泡
    $("目标对象").toggle();
});

函數、物件is 陣列?

點擊空白處能觸發某一元素關閉/隱藏以上就是個人總結的一些javascript方法了,希望大家能夠喜歡,更多相關教學請上JavaScript影片教學!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安裝JavaScript?如何安裝JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

在Quartz中如何在任務開始前發送通知?在Quartz中如何在任務開始前發送通知?Apr 04, 2025 pm 09:24 PM

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中,如何在構造函數中獲取原型鏈上函數的參數?在JavaScript中,如何在構造函數中獲取原型鏈上函數的參數?Apr 04, 2025 pm 09:21 PM

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

微信小程序webview中Vue.js動態style位移失效是什麼原因?微信小程序webview中Vue.js動態style位移失效是什麼原因?Apr 04, 2025 pm 09:18 PM

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境