`

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.Yui.Compressor.dll

    Yahoo.Yui.Compressor.dll文件下载,解决找不到Yahoo.Yui.Compressor.dll的问题 Yahoo.Yui.Compressor.dll控件常规安装方法(仅供参考): 一、如果在运行某软件或编译程序时提示缺少、找不到Yahoo.Yui....

    grunt-yui-compressor-源码.rar

    grunt-yui-compressor-源码.rar

    yuicompressor-2.4.8.jar

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yuicompressor-...

    Yahoo JavaScript库 YUI源码

    Yahoo JavaScript库 YUI,非常有名的免费开源代码库

    yuicompressor-yui compressor

    雅虎推出的一款javascript压缩工具。有JAVA版本和.NET版本。 yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ----------...

    Python库 | ore.yui-0.4.1.tar.gz

    python库。 资源全名:ore.yui-0.4.1.tar.gz

    基于java的开发源码-JSCSS压缩工具 YUI Compressor.zip

    基于java的开发源码-JSCSS压缩工具 YUI Compressor.zip 基于java的开发源码-JSCSS压缩工具 YUI Compressor.zip 基于java的开发源码-JSCSS压缩工具 YUI Compressor.zip 基于java的开发源码-JSCSS压缩工具 YUI ...

    JS/CSS压缩器基于Yahoo.Yui.Compressor引擎

    Yahoo.Yui.Compressor引擎是目前最稳定的压缩引擎出自于雅虎。 但是雅虎仅提供java版的很是不方便。 由于经常需要压缩JS所以本人开发了这个绿色小工具(单文件)奉献给大家。 如果建议可以留言

    Yahoo YUI 资料

    yui_3.14.1 yahoo YUI 资料

    小程序 JSCSS压缩工具 YUI Compressor(源码).zip

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    YUI 读码日记之 YAHOO.lang.is*

    在 YUI 框架的 %BULID%/yahoo/yahoo.js 中,包含了一系列的变量类型检测方法,它们被分装成 YAHOO.lang.is* 。其中,这些函数的大部分封装都是 typeof 操作符的封装,我个人比较敢兴趣的事 isArray 与 isValue 的两...

    yui 3.1.2 源码 6MB大小 0资源分

    YUI3 源码 非compress版 YUI3 源码 非compress版 YUI3 源码 非compress版

    Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3

    在 YAHOO.util.Dom 中能发现很多有趣的东西。下面先说下 toCamel 的函数,感谢 小马 帮助我理解了这个函数。toCamel 把指定名称替换为驼峰写法,比如把 border-width 替换为 borderWidth 。

    yuicompressor-2.4.jar

    压缩JS所使用jar包!...压缩JS:java -jar yuicompressor-2.4.jar --type js xxx.js -o xxx.js --charset utf-8 压缩CSS:java -jar yuicompressor-2.4.jar --type css xxx.css -o xxx.css --charset utf-8

    yuicompressor-2.4.2.jar

    yuicompressor.jar js/css压缩 //压缩JS java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js > packed.js //压缩CSS java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src...

    yuicompressor-2.4.8.zip js、css注释清理及压缩工具

    yuicompressor-2.4.8.zip js、css注释清理及压缩工具

Global site tag (gtag.js) - Google Analytics