`
free_xiang
  • 浏览: 52659 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

javascript收集

    博客分类:
  • web
阅读更多

 

一、取URL中的参数

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

二、正则分组

var testStr="<div><img src='/a.jpg' alt='' /><span>test</span><img src='/b.jpg' alt='' /><span>TTest</span><img src='/c.png' alt='' /></div>";
var reg=/<img\ssrc='(.*?)'\s+alt=''\s*\/>/g;
var match=reg.exec(testStr),results=[];
while(match != null){
    results.push(match[1]);
    match=reg.exec(testStr);
}
console.log(results);
/*
Array ["/a.jpg", "/b.jpg", "/c.png"]
*/

三、为什么parseInt(1/0,19)的结果为18

  1/0的结果是Infinity,所以parseInt(1/0,19)等同于parseInt("Infinity",19),而在19进制中:

 19进制       10进制
--------------------
   0            0
   1            1
   2            2
   3            3
   4            4
   5            5
   6            6
   7            7
   8            8
   9            9
   a            10
   b            11
   c            12
   d            13
   e            14
   f             15
   g            16
   h            17
   i             18

  i表示18,所以parseInt(1/0,19)的结果为18。

四、jQuery中获取设置checkbox选中状态

  由于在jQuery1.6以后.attr("checked")的返回结果是 checked,所以一般用下面两种方法获取选中状态:

$("#checkboxID").is(":checked");
//jQuery 1.6 + $("#checkboxID").prop("checked");

  选中checkbox:

//jQuery 1.6+
$("#checkboxID").prop("checked", true);
$("#checkboxID").prop("checked", false);

//jQuery 1.5 and below
$('#checkboxID').attr('checked','checked')
$('#checkboxID').removeAttr('checked')

五、jQuery中判断一个元素是否存在

if ($(selector).length)

六、用JavaScript对URL进行编码

var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + encodeURIComponent(myUrl);

七、jQuery中event.preventDefault() 与 return false的区别

//Demo1 event.preventDefault()
$('a').click(function (e) {
    // custom handling here

    e.preventDefault();
});

//Demo2 return false
$('a').click(function () {
    // custom handling here

    return false;
};

  jQuery中return false相当于同时调用e.preventDefault和 e.stopPropagation。

  要注意的是,在原生js中,return false仅仅相当于调用了e.preventDefault。

八、JavaScript检查一个字符串是否为空最简单的方法

if (strValue) {
    //do something
}

九、用JavaScript添加和删除class

//Add Class
document.getElementById("MyElement").className += " MyClass";

//Remove Class
document.getElementById("MyElement").className = document.getElementById("MyElement").className.replace(/(?:^|\s)MyClass(?!\S)/,'');

十、在jQuery中取消一个ajax请求

var xhr = $.ajax({
    type: "POST",
    url: "test.php",
    data: "name=test",
    success: function(msg){
       alert( msg );
    }
});

//取消请求
xhr.abort()

  要注意的是,在ajax请求未响应之前可以用xhr.abort()取消,但如果请求已经到达了服务器端,这样做的结果仅仅是让浏览器不再监听这个请求的响应,但服务器端仍然会进行处理。

十一、JavaScript删除数组中的项 delete vs splice

var myArray=["a","b","c"];
delete myArray[0];
for(var i=0,j=myArray.length;i<j;i++){
    console.log(myArray[i]);
    /*
    undefined
    b
    c
    */
}

var myArray2=["a","b","c"];
myArray2.splice(0,1);
for(var i=0,j=myArray2.length;i<j;i++){
    console.log(myArray2[i]);
    /*
    b
    c
    */
}

  上面的代码已经说明区别了,一个是设置为undefined,一个是真正的删除了。

十二、JavaScript中16进制与10进制相互转换

var sHex=(255).toString(16);//ff
var iNum=parseInt("ff",16);//255

十三、JavaScript多行字符串

  如何在JavaScript中方便地写一个多行字符串呢,有三种方案,你自己选吧:

//one
var testHtml="a"+
"b"+
"c";

//two
var testHtml2="a\
b\
c";

//three
var testHtml3=["a",
"b",
"c"].join("");

十四、JavaScript中!!操作符是什么

console.log(!!10);//true
console.log(!!0);//false
console.log(!!"abc");//true
console.log(!!"");//false

  简单地说就是把右侧的值转为bool值

十五、JavaScript实现endsWith

String.prototype.endsWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
};

//or
function endsWith(str, suffix) {
    return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

十六、JavaScript中克隆对象

function clone(obj) {
    // Handle the 3 simple types, and null or undefined
    if (null == obj || "object" != typeof obj) return obj;

    // Handle Date
    if (obj instanceof Date) {
        var copy = new Date();
        copy.setTime(obj.getTime());
        return copy;
    }

    // Handle Array
    if (obj instanceof Array) {
        var copy = [];
        for (var i = 0, var len = obj.length; i < len; ++i) {
            copy[i] = clone(obj[i]);
        }
        return copy;
    }

    // Handle Object
    if (obj instanceof Object) {
        var copy = {};
        for (var attr in obj) {
            if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
        }
        return copy;
    }

    throw new Error("Unable to copy obj! Its type isn't supported.");
}

十七、JavaScript字符与ASCII码间的转换

console.log("\n".charCodeAt(0));//10
console.log(String.fromCharCode(65));//A

十八、JavaScript中浮点数的相等判断不能用 ==

console.log(0.1+0.2 == 0.3);//false
console.log(Math.abs(0.1+0.2 - 0.3) < 0.000001);//true

  如上所示,浮点数相等判断要用差的绝对值小于某一个数来判断。至于原因可以参考这里:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

十九、JavaScript中base64编码

var Base64 = {

// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

// public method for encoding
encode : function (input) {
    var output = "";
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    var i = 0;

    input = Base64._utf8_encode(input);

    while (i < input.length) {

        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output = output +
        this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
        this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

    }

    return output;
},

// public method for decoding
decode : function (input) {
    var output = "";
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;

    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

    while (i < input.length) {

        enc1 = this._keyStr.indexOf(input.charAt(i++));
        enc2 = this._keyStr.indexOf(input.charAt(i++));
        enc3 = this._keyStr.indexOf(input.charAt(i++));
        enc4 = this._keyStr.indexOf(input.charAt(i++));

        chr1 = (enc1 << 2) | (enc2 >> 4);
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        chr3 = ((enc3 & 3) << 6) | enc4;

        output = output + String.fromCharCode(chr1);

        if (enc3 != 64) {
            output = output + String.fromCharCode(chr2);
        }
        if (enc4 != 64) {
            output = output + String.fromCharCode(chr3);
        }

    }

    output = Base64._utf8_decode(output);

    return output;

},

// private method for UTF-8 encoding
_utf8_encode : function (string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

        var c = string.charCodeAt(n);

        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }

    }

    return utftext;
},

// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < utftext.length ) {

        c = utftext.charCodeAt(i);

        if (c < 128) {
            string += String.fromCharCode(c);
            i++;
        }
        else if((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i+1);
            string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        }
        else {
            c2 = utftext.charCodeAt(i+1);
            c3 = utftext.charCodeAt(i+2);
            string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }

    }

    return string;
}
}

//encode
Base64.encode("Test"); //VGVzdA==

//decode
Base64.decode("VGVzdA=="); // Test

二十、jQuery中each跟map的区别
  each跟map都可以用来遍历Array或Object,区别是each不改变原来的Array或Object,map是操作给定的Array或Object返回一个新Array或Object。Demo:

var items = [1,2,3,4];

$.each(items, function() {
  alert('this is ' + this);//alert 1,2,3,4
});

var newItems = $.map(items, function(i) {
  return i + 1;
});
// newItems is [2,3,4,5]

  map会占用更多的内存,所以如果只是遍历建议用each。

分享到:
评论

相关推荐

    jsp+javascript收集

    【jsp+javascript收集】是一个关于Web开发中JSP(JavaServer Pages)与JavaScript技术的资料集合,涵盖了作者在实践中积累的各种实例和参考资料。这个压缩包包含了一系列与这两个核心技术相关的文件,旨在为编程爱好...

    多个文件框javascript搜集

    标题和描述反复提到了“多个文件框javascript搜集”,这暗示了其内容可能涉及如何利用JavaScript处理多选文件输入元素(`&lt;input type="file" multiple&gt;`)。 在HTML5中,`&lt;input type="file" multiple&gt;`属性允许...

    JavaScript收集

    在本"JavaScript收集"中,我们涵盖了几个关键的知识点,包括表单验证、多级下拉列表的实现、后台框架的应用以及InputBoxCalendar的实例。 1. **表单验证**: 表单验证是JavaScript的一个核心应用场景,用于在用户...

    JavaScript收集的43个特效效果20080103

    &lt;br&gt;JavaScript收集的43个特效效果 JavaScript收集的43个特效效果 JavaScript收集的43个特效效果 JavaScript收集的43个特效效果 JavaScript收集的43个特效效果 JavaScript收集的43个特效效果 ...

    JavaScript经典代码收集

    这个“JavaScript经典代码收集”压缩包显然包含了各种实用且经典的JavaScript代码片段,对于学习和提升JavaScript技能非常有帮助。下面我们将深入探讨其中可能涵盖的一些重要知识点。 1. **变量与数据类型**:...

    JavaScript for Hackers.pdf

    3. **客户端数据收集**:xhr-formHarvester.js和cookieHarvester.js等代码展示了如何通过JavaScript收集用户表单数据和Cookie信息,这对于了解数据泄露风险和执行数据窃取攻击至关重要。 4. **页面篡改与Defacement...

    html和javaScript资料和例子

    Ajax(Asynchronous JavaScript and XML)是JavaScript实现异步数据交换的技术,允许在不刷新整个页面的情况下更新部分网页内容。使用`XMLHttpRequest`对象或现代浏览器的`fetch` API可以发送Ajax请求: ```...

    JavaScript资料收集(很全)

    JavaScript,也常被称为JS,是一种轻量级的解释型编程语言,主要应用...这个"JavaScript资料收集(很全)"的压缩包很可能包含了各种教程、示例代码和实践项目,这些都是极好的学习资源,能帮助你逐步精通JavaScript编程。

    javascript-collection-paraphernalia:Javascript收集实用程序,例如each,filter和find

    Javascript收集实用程序(例如每个实用程序)进行过滤和查找,以与对象和数组一起使用 入门 1.安装 npm install javascript-collection-paraphernalia 2.例子 需要javascript-collection-paraphernalia var ...

    收集的Javascript定义信息

    从给定的HTML和JavaScript代码片段中,我们可以深入解析并理解一些重要的JavaScript概念与实践,尤其是在网页中的应用。以下是对这些知识点的详细说明: ### 1. DOM操作:`getElementById`与`getElementsByTagName`...

    Learn JavaScript

    - **用户反馈**:讨论如何通过JavaScript收集并处理用户的输入,以提供即时反馈。 ##### 第4章 图像效果 - **图像变换**:介绍如何使用JavaScript实现图像的动态变换,如淡入淡出效果。 - **图像滑动**:演示如何...

    JavaScript案例 很多脚本的收集

    "JavaScript案例 很多脚本的收集"这个标题暗示了这是一个包含多种JavaScript应用场景和技巧的资源集合,旨在帮助用户深入理解和全面掌握JavaScript的使用方法。 在JavaScript的世界里,开发者可以实现动态网页交互...

    JavaScript OC的交互.zip

    2. **数据分析**:JavaScript收集用户在应用内的行为数据,然后通过Objective-C发送到服务器进行分析。 3. **增强用户体验**:JavaScript可以提供复杂的动画和交互效果,提升应用的用户体验。 4. **热修复**:对于...

    实用javascript

    JavaScript,简称为JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责网页的动态化和交互性。...文件列表中的"JavaScript收集"可能包含了相关的示例代码、教程或者工具,可以帮助深入理解和应用这些概念。

    javascript网站广告代码大全

    在实际应用中,开发者可能还需要考虑广告的追踪和分析,例如,使用Google Analytics或其他第三方工具来收集广告展示和点击的数据。 通过学习和理解这些JavaScript广告代码,开发者可以掌握如何在自己的网站上创建和...

    100个用JavaScript编写的广告效果(A)

    5. **数据追踪与分析**:js-0011和js-0039可能涉及到了广告的点击率追踪,通过JavaScript收集用户对广告的点击行为,帮助分析广告效果,以便于优化广告策略。 在实际应用中,开发者需要考虑浏览器兼容性、加载速度...

    JAVASCRIPT设计模式[收集].pdf

    JavaScript 设计模式概述 JavaScript 设计模式是一个非常重要的概念,在前端开发中,掌握设计模式可以提高开发效率和代码质量。本文将对 JavaScript 设计模式进行总体介绍,并对闭包、封装等重要概念进行详细讲解。...

    javascript技巧精心收集

    "javascript技巧精心收集"这个主题包含了一系列关于JavaScript编程的实用技巧和资源,旨在帮助开发者提升技能和效率。以下是一些从提供的文件名中提炼出的关键知识点: 1. **jsp技巧.txt**:这可能涉及到JavaServer...

    JavaScript经典代码大全收集.pdf

    这份文档《JavaScript经典代码大全收集.pdf》中展示了许多JavaScript的经典代码片段,这些片段涵盖了JavaScript在网页编程中的常见用途,包括操作DOM元素、事件处理、页面跳转、弹窗、焦点控制等多个方面。...

    JavaScript API

    再者,"js技巧收集200多个.docx" 是一份Word文档,很可能包含了200多条JavaScript编程技巧和最佳实践。这样的集合通常涵盖实用的代码片段、性能优化策略以及常见问题的解决方案。使用这份文档,开发者可以提升编程...

Global site tag (gtag.js) - Google Analytics