国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

那些精彩的JavaScript代碼片段

2019-11-19 17:58:52
字體:
來源:轉載
供稿:網友

精彩的JavaScript代碼片段,分享給大家

1.根據給定的條件在原有的數組上,得到所需要的新數組

var a = [-1, -1, 1, 2, -2, -2, -3, -3, 3, -3];function f(s, e) {  var ret = [];  for (var i in s) { // 根據原有的數組長度進行循環    ret.push(e(s[i]));  }  return ret;}f(a, function(n) {  return n > 0 ? n : 0}); // 傳輸一個匿名函數作為邏輯判斷

2.比原生type或typeof更詳細的類型監測方法

function type(p) {  /function.(/w*)/(/)/.test(p.constructor); //通過其構造函數來獲取對應的類型。  return RegExp.$1;}

3.對象或數組的深拷貝,用于解決對象引用時值一改全改的問題。

var copyObject = function(obj) {  var result = {};  for (var x in obj) {    result[x] = typeof obj === "object" ? copyObject(obj[x]) : obj[x]    //如果拷貝的值仍然是一個對象,那么重復執行當前方法。  }    return result;}

4.通過正則表達式來獲取Cookie的值

function getCookie(name) {  if (name && RegExp("(^| )" + name + "=([^;]*)(;|$)").exec(document.cookie)) return RegExp.$2;  // (^| ) 不匹配第一個空格。  // ([^;]*) 只匹配除了;號之外的所有字符。  // (;|$) 匹配以;號或$為結尾的字符。}

5.通過移位運算來替代”parseInt”

~~3.14 = > 3;

// ~~ 取整。~取當前數值的反碼,~~表示再次取反,也就是得到當前自身(說明,JS中的“位”運算會將數值自動轉換為整數)

6.將數值轉換為16進制的字符串(常用于表示色彩)

(~~ (Math.random() * (1 << 24))).toString(16)

// ~~ 通過位運算來取整。
// << 左移位。將1的二進制數左移24位。而1<<24 == 2^24(RGB模式下最多可表示的色彩數量)
// toString(16) 將數值轉換為16進制的字符串輸出。

7.對象方法的兼容性檢查

if ('querySelector' in document) {}

8.NodeList || HTMLCollection || Object轉換為Array或具有Array的方法

NodeList: 是指通過集合方法獲得到的DOM節點列表,例如:document.getElementsByTagNmae,document.forms…等方法。
HTMLCollection: HTML塊,它與NodeList很像,但是NodeList只支持數字索引,而HTMLCollection可以支持名稱作為索引。
NodeList與HTMLCollection都具有以下類似: 具有數組的外觀,但沒有數組的方法 、具有length屬性、支持索引來讀取內容

function makeArray(obj) {  var rs = [],    len = obj.length;  try {    rs = [].slice.call(obj, 0);  } catch (e) { //for IE    for (var i = 0; j = obj[i++];) {      rs.push(j);    }  }  return rs;}

9. 正則匹配清除兩側空格

var trim = function(v){  var patrn = /^/s*(.*?)/s+$/;  return (patrn.test(v))? RegExp.$1 : '  null ';}

10. 時間格式化

function dateFormat(t){    // t 是以秒為單位的值。  var h = ~~(t/3600),    // t除以3600,取整,得到的就是小時。    m = ~~(t%3600/60),  // t求余3600,取模,得到的就是去除小時剩下的秒數(分鐘 + 秒),再除以60,取整,得到的就是分鐘。    s = ~~(t%3600%60);  // t求余3600,再求余60,剩下的自然就是“秒數”。    return h+'小時'+m+'分'+s+'秒';}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 信宜市| 武义县| 吉木萨尔县| 丁青县| 静安区| 诏安县| 乌审旗| 探索| 依兰县| 谷城县| 观塘区| 普兰县| 芮城县| 玉田县| 白城市| 凭祥市| 祁东县| 宁津县| 广德县| 板桥市| 信宜市| 石渠县| 海安县| 独山县| 广灵县| 社会| 松江区| 英山县| 陇西县| 霍城县| 稷山县| 麟游县| 屏东县| 合江县| 甘孜县| 新密市| 安顺市| 祁阳县| 曲麻莱县| 泾川县| 婺源县|