`
radar
  • 浏览: 28410 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

javascript tips

阅读更多
原文:http://arstechnica.com/journals/linux.ars/2007/08/27/javascript-for-all-ages?foo

1、objects and associative arrays

javascript中,对象属性操作与数组很类似。
但 javascript也为我们做了一些工作,把 数字转化为字符串。不过还是建议自己写清楚
foo[1] == foo[(1).toString()] == foo['1'];
2、cute type conversions

这些基本我们都知道。
也可看看
http://www.jibbering.com/faq/faq_notes/type_convert.html
0 + '' == 0
'' + 0 == 0
1 + '' == 1
'' + 1 == 1
0 + 'a' == '0a'
'a' + 0 == 'a0'


但这个技巧呢?很多lib里面都用了。
var a=function(){}
var b=new a();
alert(!b)
alert(b)

3、iteration
prototype.js,jQuery。n多的FP的东西。
4、anonymous functions
也见 http://developer.mozilla.org/en/docs/New_in_JavaScript_1.6
yield,反正我自己用起来很别扭。
喜欢ruby的yield.
var range = function (start, stop, step) {
  return function () {
    var at = start;
    start += step;
    if (at < stop) return at;
    else throw new Error();
  };
};
var next = range(0, 6, 2);
alert(next())//0
alert(next())//2
alert(next())//4


大量的应用”闭包“,始终感觉性能上有些问题。可能是个人感觉
5、enclosure
(function () {
  ...
}).call(this);

语言的”最小单元“,不知道该叫什么。但是java里面,所谓”最小单元“,也是一个类。而javascript或ruby之类的,一断代码就可以,可以通过上面的方法动态注入执行环境。我不是很喜欢javascript的eval的功能。

with也有类似功效。好象很多书都不建议用with。性能慢是一个原因。感觉javascript语言不想让代码编写者了解“scope chain”。所以闭包,with,eval等等都不是很流行。可能这方面javascript设计的不是很严谨???

6、context object manipulation
Function.apply
Function.call
在这里很关键,
在java中,那么多设计模式都是关于接口的,我理解为java中接口是最小单元,如果没有接口,你根本不知道那些方法的context object是什么,也不可能执行方法。
而javascript呢?有function就好了,注意this都ok了。
读了jQuery代码后,在这方面有很多感想,有时间具体分析一下。

7、variadic arguments
小tip。
8、binding
与第六差不多。
跑题:
javascript模拟java的面向对象编程时,其实也模拟的java的”缺点“,状态保存的位置!!!

var Button=function (dom){
    this.**=**;
    this.**=**;
}
这种”类“其实完全没有必要的!!!
9、lazy function definition
大家讨论不少了!
相同的功能,其实YUI代码里早用到了。
http://developer.yahoo.com/yui/docs/Dom.js.html
见getStyle  setStyle 等。
var getPi = function () {
  var pi = calculatePi();
  getPi = function () {
    return pi;
  }
  return pi;
};

我到是不认为它这例子好。真正这些功能都在lib中实现,象cache,function覆盖等!
10、polymorphic callable objects
新的想法,区别java之类的多态
var callableType = function (constructor) {
  return function () {
    var callableInstance = function () {
      return callableInstance.callOverload.apply(callableInstance, arguments);
    };
    constructor.apply(callableInstance, arguments);
    return callableInstance;
  };
};

var SubmarineFactory = type(function () {
    var length;
    this.init = function (length) {
        length = lengthValue;
    };
    this.callOverload = function () {
        return Submarine(length);
    };
});
分享到:
评论

相关推荐

    javascripttips.zip_javascript

    "javascripttips.zip_javascript"这个压缩包很可能包含了诸多JavaScript编程的实用技巧和指导,旨在帮助初学者快速上手并理解这门语言的核心概念。在本文中,我们将深入探讨JavaScript的基础知识,以及一些常见的...

    一个基于ASP.NET 的js客户端处理技术JavaScript Tips 之二。

    本文将围绕"JavaScript Tips 之二"这一主题,深入探讨如何在ASP.NET环境中有效地利用JavaScript进行客户端处理。 首先,我们来看`Default.aspx`文件,它是ASP.NET Web应用程序中的默认页面,通常包含HTML、CSS和...

    一个基于ASP.NET 的js客户端处理技术JavaScript Tips 之一

    本文将深入探讨基于ASP.NET的JavaScript客户端处理技术,并分享一些实用的JavaScript Tips,帮助开发者提升应用程序的性能和用户体验。 首先,了解JavaScript在ASP.NET中的作用至关重要。在服务器端,ASP.NET处理...

    javascript tips提示框组件实现代码

    JavaScript Tips提示框组件是一种常见的用户交互元素,用于在鼠标悬停在特定元素上时显示额外信息。这个组件的实现代码展示了如何用纯JavaScript创建一个功能类似于`title`属性但更加强大的提示效果。下面我们将详细...

    ASP小贴士/ASP Tips javascript tips可以当桌面

    从提供的文件信息来看,这里所要阐述的知识点主要涉及ASP(Active Server Pages)和JavaScript编程语言的技巧和快速参考指南,通常称为CheatSheet(速查表)。以下是详细的知识点介绍: 1. ASP小贴士和技巧:ASP是...

    JavaScript Tips 使用DocumentFragment加快DOM渲染速度

    在JavaScript开发中,DOM操作是一个非常普遍且核心的过程。通过DOM操作,我们能够利用JavaScript来动态地修改网页的内容、结构和样式。然而,频繁的DOM操作会对性能产生影响,尤其是在处理大量节点时,这会导致页面...

    JavaScript - Complete JavaScript professional tips secrets

    ### JavaScript - 完整的专业技巧与秘密 #### 内容概览 本书旨在为JavaScript开发者提供一系列实用且深入的专业技巧,帮助他们在实际开发过程中更好地掌握这门语言的核心特性及其应用场景。书中涵盖了从基础到进阶...

    The.JavaScript.Anthology.101.Essential.Tips.Tricks.Hacks

    《JavaScript Anthology: 101 Essential Tips, Tricks & Hacks》是一本专注于JavaScript编程实践的书籍,旨在帮助开发者提升JavaScript技能,掌握一系列实用的技巧、窍门和黑客技术。这本书的内容涵盖了AJAX、CSS、...

    The JavaScript Anthology 101 Essential Tips, Tricks

    ### JavaScript Anthology:101 Essential Tips, Tricks & Hacks #### 一、概述 《JavaScript Anthology:101 Essential Tips, Tricks & Hacks》是一本由James Edwards和Cameron Adams编写的经典JavaScript教程...

    HTML5.Programmers.Reference.1430263679

    The HTML5 Programmer’s Reference aims to provide everything a programmer needs for understanding and using the new ...Appendix A: JavaScript Tips and Techniques

    javascript-tips:Javascript技巧

    Javascript技巧有缺陷的数学0.1 + 0.2!= 0.3 0.1 + 0.2 == 0.30000000000000004 console.log(0.1+0.2);简单的变量可以被复制并将是新的 var x = 1;var y = x;x = 2;console.log(x,y);结果:x = 2,y = 1复杂变量...

    Tips基于jQuery的提示框插件可自动消失可手动消失

    要使用这个基于jQuery的Tips插件,首先你需要在项目中引入jQuery库和Tips插件的JavaScript文件。假设在`Tips-master`压缩包中包含以下文件: 1. `jquery.js` - jQuery的核心库,确保在所有其他脚本之前引入。 2. `...

    Visual Studio Code tips and tricks for JavaScript developers

    Visual Studio Code tips and tricks for JavaScript developers

    JavaScript Functional Programming for JavaScript Developers (PDF, EPUB, MOBI)

    This course will begin with providing insights and practical tips on advanced JavaScript features to build highly scalable web and mobile system and move on to some design patterns with JavaScript....

    Speaking JavaScript

    Like it or not, JavaScript is everywhere these days—from browser to server to mobile—and now you, too, need to learn the language or dive deeper than you have. This concise book guides you into and ...

Global site tag (gtag.js) - Google Analytics