`
ithero
  • 浏览: 143621 次
社区版块
存档分类
最新评论

JavaScript应用技巧集合

    博客分类:
  • AJAX
阅读更多

里我将会对这些应用技巧进行集中描述,如果你觉得遗漏了一些好用的应用技巧,也请在留言中提出,我会及时更新到这篇文章中的。

  1. 转化为Boolean类型
    所有JavaScript中的值都能隐式的转化为Boolean类型,比如:
     
    1.0 == false// true
    2.1 == true// true
    3.'' == false // true
    4.null == false // true
    但是这些值都不是Boolean类型。
    因此当我们使用三个等于号进行比较时:
     
    1.0 === false// false
    2.1 === true// false
    3.'' === false // false
    4.null === false // false
    现在的问题是如何将其他类型转化为Boolean类型:
     
    1.!!0 === false// true
    2.!!1 === true// true
    3.!!'' === false // true
    4.!!null === false // true


     
  2. 为参数赋初值
    JavaScript中没有重载的概念,但是JavaScript中函数的参数都是可选的,如果调用时少写了一个参数,将会被undefined所代替。
     
    1.function plus(base, added) {
    2.    return base + added;
    3.}
    4.plus(2); // NaN
    在这个例子中,plus(2)plus(2, undefined)是等价的,2 + undefined的结果是NaN。 
    现在的问题是,如果没有传递第二个参数,如何为它赋初值呢?
     
    1.function plus(base, added) {
    2.    added = added || 1;
    3.    return base + added;
    4.}
    5.plus(2); // 3
    6.plus(2, 2); // 4


    有网友提到 plus(2, 0) = 3; 的确是这样的,看来这个地方还要做一些特殊处理:
     
    1.function plus(base, added) {
    2.    added = added || (added === 0 ? 0 : 1);
    3.    return base + added;
    4.}


     
  3. 阻止别人在Iframe中加载你的页面
    如果你的网站变得非常有人气的时候,就有很多网站想链接到你的网站,甚至想把你的网页通过IFrame嵌入它自己的网页。 
    这样就不好玩了,那么如何来阻止这样行为呢?
     
    1.if(top !== window) {
    2. top.location.href = window.location.href;
    3.}
    这段代码应该放在你每个页面的head中,如果你想知道现实中有没人在用,看看baidu的博客你就知道了。 


     
  4. 字符串替换
    String.prototype.replace函数经常会让那些非常熟悉C#或者Java的程序员感到迷惑。 
    比如:
     
    1.'Hello world, hello world'.replace('world''JavaScript');
    2.// The result is "Hello JavaScript, hello world"
    replace函数的第一个参数是正则表达式。
    如果你传递一个字符串到第一个参数,则只有第一个找到的匹配字符串被替换。 
    为了解决这个问题,我们可以使用正则表达式:
     
    1.'Hello world, hello world'.replace(/world/g, 'JavaScript');
    2.// The result is "Hello JavaScript, hello JavaScript"
    我们还可以指定在替换时忽略大小写:
     
    1.'Hello world, hello world'.replace(/hello/gi, 'Hi');
    2.// The result is "Hi world, Hi world"


     
  5. 将arguments转化为数组
    函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象。 
    它具有length属性,但是没有slice, push, sort等函数,那么如何使arguments具有这些数组才有的函数呢? 
    也就是说如何使arguments变成一个真正的数组呢?
     
    1.function args() {
    2.    return [].slice.call(arguments, 0);
    3.}
    4.args(2, 5, 8); // [2, 5, 8]


     
  6. 为parseInt函数指定第二个参数
    parseInt用来将字符串转化为整形的数字,语法为:
     
    1.parseInt(str, [radix])
    其中第二个参数是可选的,用来指定第一个参数是几进制的。 
    如果没有传递第二个参数,则按照如下规则:
    ->如果str以 0x 开头,则认为是16进制。
    ->如果str以 0 开头,则认为是8进制。
    ->否则,认为是10进制。
    因此如下的代码将会让人很迷惑,如果你不知道这些规则:
     
    1.parseInt('08'); // 0
    2.parseInt('08', 10); // 8

    所以,安全起见一定要为parseInt指定第二个参数。 

     
  7. 从数组中删除一个元素 
    或许我们可以通过delete来做到:
     
    1.var arr = [1, 2, 3, 4, 5];
    2.delete arr[1];
    3.arr; // [1, undefined, 3, 4, 5]
    可以看到,delete并不能真正的删除数组中的一个元素。删除的元素会被undefined取代,数组的长度并没有变化。

    事实上,我们可以通过Array.prototype中的splice函数来删除数组中的元素,如下所示:
     
    1.var arr = [1, 2, 3, 4, 5];
    2.arr.splice(1, 1);
    3.arr; // [1, 3, 4, 5]


     
  8. 函数也是对象
    在JavaScript中函数也是对象,因为我们可以为函数添加属性。 
    比如:
     
    1.function add() {
    2.    return add.count++;
    3.}
    4.add.count = 0;
    5.add();    // 0
    6.add();    // 1
    7.add();    // 2
    我们为函数add添加了count属性,用来记录此函数被调用的次数。 

    当然这可以通过更优雅的方式来实现:
     
    01.function add() {
    02.    if(!arguments.callee.count) {
    03.        arguments.callee.count = 0;
    04.    }
    05.    return arguments.callee.count++;
    06.}
    07.add();    // 0
    08.add();    // 1
    09.add();    // 2
    arguments.callee指向当前正在运行的函数。 


     
  9. 数组中的最大值
    如何在全是数字的数组中找到最大值,我们可以简单的通过循环来完成:
     
    1.var arr = [2, 3, 45, 12, 8];
    2.var max = arr[0];
    3.for(var in arr) {
    4.    if(arr[i] > max) {
    5.        max = arr[i];
    6.    }
    7.}
    8.max; // 45
    有没有其他方法?我们都知道JavaScript中有一个padding: 0px;
    分享到:
    评论

    相关推荐

      常用的Javascript技巧大集合

      常用的Javascript技巧大集合,包括的经常使用的Javascript,有时忘记了可以参看下

      javascript应用技巧大集合

      javascript应用技巧大集合,有55个效果展示

      JavaScript使用技巧精萃

      JavaScript使用技巧精萃 整理集合了JavaScript的使用技巧

      JavaScript 应用技巧集合[推荐]

      前段时间我曾经对JavaScript中的应用技巧进行了收集和总结这里我将会对这些应用技巧进行集中描述,如果你觉得遗漏了一些好用的应用技巧,也请在留言中提出,我会及时更新到这篇文章中的。

      JavaScript表单常用验证集合_应用技巧

      验证年龄,验证邮箱,验证是否为中文.......

      JavaScript编程技巧

      集合了一些JavaScript编程函数供初学者参考使用,有绘图等函数

      css,javascript等一些好的网页特效制作方法和技巧集合

      css,javascript等一些好的网页特效制作方法和技巧 以及和jsp等页面表示层,相结合使用的特效

      DHTML&javascript 使用手册

      DHTML&javascript 使用手册 动态 HTML (DHTML) 对象模型参考 DHTML 对象 DHTML 属性 DHTML 方法 DHTML 事件 DHTML 集合 HTML 参考 HTML 元素 HTML 字符集 样式表(CSS)参考 CSS 属性参考 CSS 长度单位参考...

      JSP实用技巧集合,jsp编程的一些小技巧总结

      108.使用选代器遍历集合 109.使用特定字符串对一个字符串进行分割? 110.格式化输出数字和字符? 111.生成一定范围的随机数? 112.调用其它应用程序? 113.禁止列出站点文件目录? 114.防止用户直接输入文件名访问JSP? ...

      JavaScript 进阶问题列表,包含完整答案

      《JavaScript进阶问题列表》是一份全面覆盖JavaScript高级知识点的问题集合,旨在帮助开发者深入理解JavaScript语言的各个方面,并掌握进阶技巧。每个问题都提供了详细的答案和解析,涵盖了JavaScript的高级特性、...

      JS-Tips-And-Tricks:JavaScript技巧和窍门的集合:fire::rocket::high_voltage:

      JAVASCRIPT技巧与窍门 :fire: :rocket: :high_voltage: JavaScript技巧和窍门的集合。没有特定的顺序或路径。我发现时添加了东西。检查以获得JavaScript提示。这不是我的项目,但我喜欢它。 :fire:目录 可选连锁“在...

      JavaScript王者归来part.1 总数2

       1.2 JavaScript的应用范围   1.3 JavaScript的版本   1.4 一些值得留意的特性 禁忌及如何突破这些禁忌   1.5 安全性和执行效率   1.6 一个例子--JavaScript编写的计算器   1.7 学习和使用JavaScript的...

      JavaScript动态网页技术详解

      本书是一本JavaScript综合开发技术大全,几乎囊括了使用JavaScript进行网页设计开发的全部知识,同时在讲解的过程中结合了大量实用而有代表性的实例。本书全部采用知识点与实例相结合的讲解方式,对每个实例的关键...

      网页开发手记.HTML.CSS.JavaScript实战详解

      作 者:叶青 等编著 出 版 社:电子工业出版社 出版时间:2011-6-1 《网页开发手记--实战详解》由叶青、孙亚南、孙...不仅如此,本书还综合了很多实际项目中的经验技巧,使读者学习的知识可以马上应用于相关工作中。

      asp.net开发常用整理集合

       javascript小技巧  DotNet 密码加密的技术  用户MD5加密  ASP.net验证码实现  图片水印  防盗链  .NET(C#)连接各类数据库  读取配置文件数据库连接串  正则表达式验证  递归把十进制转换八进制...

      javascript-patterns:javascript算法,模式和技术的集合

      注意:此存储库中的代码不应在生产中使用! 可能会有更健壮和经过充分测试的内置方法或npm软件包来完成任何任务 该存储库由维护,并由像您这样的杰出贡献者提供支持! 内容 演算法 排序 选择排序 贝壳排序 搜寻中 ...

      javascript中的array数组使用技巧

      很多语言把数组作为集合的基础,所以array是学习每一项语言必须掌握的。

      Game-Box:最好的经典游戏集,这些游戏都用javascript简单编码,并提供了一些JS游戏开发技巧

      最好的经典游戏的集合,这些游戏都简单地用javascript编码,并提供了一些JS游戏开发的技巧。 游戏类 蛇游戏:经典的蛇和食物游戏。 BreakOut游戏:必须使用移动的球和酒吧打破所有的瓷砖。 窃取纸杯蛋糕:您已经...

    Global site tag (gtag.js) - Google Analytics