`
free_xiang
  • 浏览: 53348 次
  • 性别: 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`...

    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技巧精心收集

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

    JavaScript经典代码大全收集.pdf

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

    JavaScript API

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

    javascript 实例 搜集2 js 实例 贺岁霓虹灯

    javascript 实例 搜集2 js 实例 贺岁霓虹灯 javascript 实例 搜集2 js 实例 贺岁霓虹灯 javascript 实例 搜集2 js 实例 贺岁霓虹灯 javascript 实例 搜集2 js 实例 贺岁霓虹灯 javascript 实例 搜集2 js 实例 贺岁...

Global site tag (gtag.js) - Google Analytics