`

YUI源码阅读心得 YAHOO.js 小技巧

    博客分类:
  • YUI
阅读更多

 阅读YUI2.8.1 版本上
 1,将变量转换为字符串的办法。
  var a=" "+a;  js提供了一系列的自动转换变量类型的方法。

 


  2,if(a==null){
     a={};
   }这样的代码可以简化为 a=a||{};
 
   var s;
   if(a!==null){
     s=a.property;
   }这样的代码可以简化为 s=a&&a.property;

 

 


  3,环境检测代码
    ie;opear;Gecko(firefox);webkit(Safari);mobile;air;caja;secure(ssl);os(操作系统也检测。。。);   
   secure的查询只是检测window.localtion.href有无https状况。   
   大部分检测代码从navigator.userAgent里面出来,通过字符串来进行判断


  4,YUI的继承使用的是prototype的方法继承。
   进行覆盖方法的时候,要注意valueOf和toString 这两个方法。
  因为动态属性的优先级是高于原型优先级的。所以进行继承覆盖方法的时候,需要检测这两个方法。
  
 调用了valueOf跟toString,二者并存的情况下,在数值运算中,优先调用了valueOf,字符串运算中,优先调用了toString。

 

 

 

分享到:
评论
4 楼 every_best 2010-10-27  
clue 写道
every_best 写道
clue 写道
第2点,不太明白。。。除非主动在循环中给i赋值,否则i的值怎么会变动呢?
自动变换类型也只是在其它表达式中运行的时候做,对原本的值没任何影响

如果在for循环中 对i值进行了操作,改变为了字符串类型。那i++这样的方式会报错或计算错误吧。
使用i=i+1是保证在循环中i的值能保持为数值类型。

如果被改变了,那证明程序写得有问题。
另外,如果i不是数字,i++运算会先将它转为数字再进行运算,值可能为NaN,不会出错(IE和FF下测试过)
相反,如果i为字符串,i=i+1会形成"*1"这样的字符串(字符串连接)

  是我理解错误了,不严谨了。修正,修正。多谢~
 
3 楼 clue 2010-10-27  
every_best 写道
clue 写道
第2点,不太明白。。。除非主动在循环中给i赋值,否则i的值怎么会变动呢?
自动变换类型也只是在其它表达式中运行的时候做,对原本的值没任何影响

如果在for循环中 对i值进行了操作,改变为了字符串类型。那i++这样的方式会报错或计算错误吧。
使用i=i+1是保证在循环中i的值能保持为数值类型。

如果被改变了,那证明程序写得有问题。
另外,如果i不是数字,i++运算会先将它转为数字再进行运算,值可能为NaN,不会出错(IE和FF下测试过)
相反,如果i为字符串,i=i+1会形成"*1"这样的字符串(字符串连接)
2 楼 every_best 2010-10-27  
clue 写道
第2点,不太明白。。。除非主动在循环中给i赋值,否则i的值怎么会变动呢?
自动变换类型也只是在其它表达式中运行的时候做,对原本的值没任何影响

如果在for循环中 对i值进行了操作,改变为了字符串类型。那i++这样的方式会报错或计算错误吧。
使用i=i+1是保证在循环中i的值能保持为数值类型。
1 楼 clue 2010-10-26  
第2点,不太明白。。。除非主动在循环中给i赋值,否则i的值怎么会变动呢?
自动变换类型也只是在其它表达式中运行的时候做,对原本的值没任何影响

相关推荐

    Yahoo JavaScript库 YUI源码

    **Yahoo JavaScript库 YUI源码详解** Yahoo User Interface (YUI) 是Yahoo公司推出的一款强大的JavaScript库,旨在帮助开发者构建高性能、可维护的Web应用程序。作为一款免费且开源的工具,YUI为开发者提供了丰富的...

    关于yui的学习

    学习YUI源码有助于理解其内部机制,对于提升JavaScript编程技巧和优化代码性能有很大帮助。同时,了解YUI的模块化设计思想,对学习其他前端框架或库如React、Angular等也有借鉴作用。 在"工具"标签下,我们可以理解...

    前端性能优化

    首先,`yuicompressor-2.4.2.jar` 是 Yahoo! 的一个开源项目,名为 YUI Compressor。它是一个强大的JavaScript和CSS压缩工具,主要用于减少前端代码的大小,进而提高页面加载速度。YUI Compressor通过删除空格、换行...

    大容量数据的显示

    Zakas,作为雅虎的资深前端工程师,以及YUI库的贡献者,在他的文章中提到了影响JavaScript性能的几个关键因素。首先,他提到JavaScript的运行速度受制于没有编译过程。JavaScript与静态类型、编译型语言不同,它在...

    extjs 实用教程

    - **起源:** ExtJS最初基于Yahoo UI Library (YUI),由开发者Jack Slocum开发。 - **发展:** 通过参考Java Swing等机制来组织可视化组件,逐步形成了独特的组件体系结构。 #### 二、获取ExtJS - **官方下载:** ...

Global site tag (gtag.js) - Google Analytics