`

javascript的一些细节知识

阅读更多
最近这段时间大多时候都在调试页面,弄了很久也不太满意,怒了,回去专门看了几天的关于CSS的书,带着些惊恐还是决定试下,基本上搞定了,从此后对页面布局样式等不再感到那么无助与厌恶了。看来以前之所以进步不大,那是压力不够啊!
最近看了下dwr这个东西,虽然很久没更新了,现在项目中用得还是比较多,虽然本人也知道它性能不太好,但用起来确实方便,没办法。所以决定有空好好看看它的实现方式。从中也学到了不少东西。
1.一个方法实现多种参数方式的调用。
如append方法,如果只有一个调用可以这样:
function append(a) {
  return a;
}

如果有两个参数,正常情况下得再写个方法:
function append(a,b) {
  return a+b;
}

有没有可能只写一个方法就能搞定呢?虽然以前不知道,但现在知道了,那就是有!
新式写法:
function append(a/*,b*/) {
  var argcount = arguments.length;
  var lastarg = arguments[argcount - 1]; 
  var arg=0;
  if(argcount>1){
    arg=lastarg;
    return a+b;
  }
  return a;
}

上面的例子稍微再改装下,就可以适用于3个或者更多的参数了:
function append(a/*,b*/) {
  var argcount = arguments.length;
  if(argcount>1){
    var sum = a;
    for(var i=1;i<argcount;i++){
       sum = sum+arguments[i];
    }
    return sum;
  }
  return a;
}

现在就可以直接使用了:
function foo() {
 alert(append(10));
 alert(append(2,3,4,5));
}


2.javascript中的==与===的区别
http://bonsaiden.github.com/JavaScript-Garden/
上面这个链接讲得还算详细,虽然是英文的,总结下就是,==比较会先将两边的值转换成同样的类型,然后再进行比较,此举在性能上也有所影响。而===则按照严格的规则,不进行任何转换,与java的对象比较差不多,不但值要相同,引用也要一样。所以基本上都推荐用===来进行比较。

3.undefined 与null
undefined 这个东西平时虽然有见过,但基本上没用过,javascript定义了一个叫undefined 的全局变量,同时该全局变量的值也叫undefined,它既不是关键字也不是常量,所以可以手动覆盖它的值。会出现undefined的地方有以下几种情况:
  (1).访问全局变量undefined
  (2).访问一个没有return的函数
  (3).访问一个只包含return;没有给定具体值的函数
  (4).访问一个不存在的属性
  (5).访问没有传入明确的参数的函数
至于null,在javascript内部用得比较多,基本上能用null的地方都可以用undefined替代。

4.访问函数参数arguments
每个函数都可以访问变量arguments,它包含所有的函数参数值,不过arguments并不是一个数组,因此pop、push与slice等方法不能使用,不过用还是可以使用for循环的访问遍历,即:
for(var i=0;i<arguments.length;i++){
       alert(arguments[i]);
 }

5.闭包
其实闭包这种东西本人很少用过,本来写的js代码就不多,怎么能用到这些高级货呢?先给个例子:
function Counter(start) {
    var count = start;
    return {
        increment: function() {
            count++;
        },

        get: function() {
            return count;
        }
    }
}
var foo = Counter(4);
foo.increment();
foo.get(); // 5

其中上面的increment与get函数就是闭包,这个东西与java的内部类比较相似。
分享到:
评论

相关推荐

    javascript读取本地文件和目录方法详解

    但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用...

    JavaScript和jQuery实战手册-麦克法兰.pdf

    《JavaScript和jQuery...通过学习本书,读者不仅能够掌握JavaScript编程的各项技术细节,还能体会到不断剖析、层层递进解决问题的思路。让读者在实践中学,轻松地掌握使用JavaScript和jQuery开发Web应用的有用技能。

    javaScript精粹

    最为难得的是,由于具有丰富的业界实践经验,作者在《JavaScript 精粹》中不仅仅提出了对各种问题的解决方法,还展现了自己的思考方法和一些良好的程序设计习惯,与具体的细节性知识相比,这些无疑更加具有价值。...

    你所不了解的javascript操作DOM的细节知识点(一)

    主要介绍了你所不了解的javascript操作DOM的细节知识点的相关资料,需要的朋友可以参考下

    JavaScript知识点总结之如何提高性能

    JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文非常详细的介绍了一下JavaScript性能优化方面的知识点,绝对是干货。 先给大家巩固下javascript基本语法: ...

    前端开发经典项目:《基于JavaScript的JSON数组的购物车项目》

    《基于JavaScript的JSON数组的购物车项目》——虽然只是一个简单的购物车项目,但它综合运用了HTML、CSS、Json.JavaScript等相关的知识,特别适合刚刚入门前端的小伙伴进行学习和借鉴,可以帮助小伙伴们将前端开发的...

    JavaScript性能优化之小知识总结

    JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文给大家介绍javascript性能优化之小知识总结,需要的朋友可以参考下

    jQuery 剧场版 你必须知道的javascript

    本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascript细节. 适合希望巩固javascript理论知识和基础知识的开发人员阅读.   二.前言 最近面试过一些人, 发现即使经验丰富...

    JavaScript程序设计课件:面向对象概述.pptx

    JavaScript程序设计 面向过程与面向对象 6.1.1 面向过程与面向对象 1、概念 面向过程(Procedure Oriented)也可称之为“面向记录”,是一种以过程为中心的编程思想。它注重的是具体的步骤,只有按照步骤一步一步...

    JavaScript权威指南(第6版)(中文版)

    学习JavaScript的一本很好的数据,内容讲解比较细致,深入浅出的介绍了日常开发中常用的一些js知识细节,分析讲解比较到位,很值得推荐的一本js学习资料,希望对js学习爱好者能提供一些帮助。

    JavaScript30:JavaScript30挑战!!

    在每天的文件夹中,我记下了我所学到的更多细节! 让我们在评论时参考它:) 审查 210310 挑战始于JavaScript,css和html语法。 它开始于12月19日,20日。 中间也有忙碌的工作,所以这不是30天的挑战,但我学到了很...

    基于SpringBoot+vue知识管理系统(源码+部署说明+演示视频+源码介绍).zip

    它集成了大量的常用库和框架,如MyBatis、SpringMVC、SpringDataJPA等,使得开发者可以专注于业务逻辑的开发,而不需要关心底层的技术细节。 此外,该系统还包含了部署说明和演示视频,可以帮助用户更好地理解和...

    《JavaScript DOM编程艺术 第2版》(Jeremy Keith等).[PDF].zip

    力求以最简单的方法与大家一起探讨Web标准进行网页设计的方方面面,以CSS布局为全书的主体内容,探讨CSS布局的入门知识与高级技巧等,从版式布局到细节设计再到浏览器兼容性,逐步学习与掌握CSS布局。希望能够帮助...

    自用小程序反编译工具,可用于解密和还原被加密的小程序代码,以便进行修改或者了解其实现细节

    它可以将小程序中的JavaScript代码、WXML文件和WXSS样式表等资源还原成可读性较高的格式,方便开发者进行分析和修改。 适用人群包括小程序开发者、安全研究人员、黑客等。使用场景主要是在需要对已发布的小程序进行...

    JavaScript+js语法基础+js数据类型+js数据类型转换+js运算符

    JavaScript+js语法基础+js数据类型+js数据类型转换+js运算符 我学习js的第二天,通过老师讲解总结的一份js语法基础,适用于初学者学习js基础语法,知识点相对来说比较细节。

    网页设计期末作业(5个页面)(上次传错)

    1.网页设计与开发课程的...3.写了一个星期,不容易,天天熬夜的成果,调位置这些细节真的很折磨人。 4.不是自己设计的,仿照着别人的布局做的,但是交作业不成问题 5.上次的上传错误,上次下载我的同学,私聊我私发给你

    学JavaScript七大注意事项【必看】

    初学JavaScript,注意以下七大细节,在实现同样功能的情况下,让我们的代码更易懂、效率更高。 一、简化代码 例如:创建对象 之前是这样的: Var car = new object(); Car.color = “red”; Car.wheels = 4; Car.age...

    一号店网上商城html网页模板 1比1精仿

    其次,学习到一定程度JavaScript和css的同学也可以拿来做一些练习,此项目复杂程度不高,但就是繁琐,因为你一定要在每个细节上都有所照料到,对于你的学习相信肯定会让你有进步的。 并且想要修改的话,其实也非常...

Global site tag (gtag.js) - Google Analytics