Discuz教程网

js的写法基础分析

[复制链接]
authicon 09927306 发表于 2011-1-18 12:42:07 | 显示全部楼层 |阅读模式
var a=false;
!a&&alert(\"hi\");
解释 a为真才继续往下执行,所以会弹出hi
var a=a||\"hi\";
解释 当a为假的时候会继续执行,当a为真的时候跳出这个语句,所以可以通过这个办法复制默认值
上面的方法并非所有语言都是如此处理,比如PHP
$a=@$a||\"hi\";
echo $a;//1
php把(@$a||\"hi\")之后的值赋值过去了...
$a=true;
!$a&&echo \"hi\";
直接报错:syntax error, unexpected T_ECHO
关于prototype
很多情况下看到prototype都想到只有对象的情况下有
var add=function(){alert(\"b\");}
add.prototype.a = function () {alert(\"hi\");}
new add.prototype.a;
第一反应,可能会报错,其实不然,当没有生产对象的时候,可以通过add.prototype.a的方式直接调用静态的方法的
JS挺会误导人的,咳
选择器问题:
有时候需要选择一个节点下的子节点,用childNodes取值FIREFOX,IE的不同让人很郁闷
document.getElementsByTagName(\"head\")[0].getElementsByTagName(\"script\")[0];
上面的方法结果用在head标签阶段还好,用在其他的不怎么好用了
所有觉得还是用个类名作处理好点
代码如下:

  1. function getclassnode(classname,doc){
  2. doc=doc||document;
  3. var node=[],i=0,j=0,t;
  4. var allnode=doc.getElementsByTagName("*");
  5. while(t=allnode[i]){
  6. if(RegExp(classname).test(t.className)){
  7. node[j]=t;
  8. j++;
  9. }
  10. i++;
  11. }
  12. return node;
  13. }
复制代码

自从用了JQ后,把原生的JS操作都忘的差不多了,偶尔复习下,感觉特麻烦,郁闷.
补上一点今天发现的JS要注意的地方,如果一个JS已经引入到了当前文档,即使移除引入节点,通过该引入JS文件定义的变量,函数等仍然有效,因为已经加载到了当前的文档环境,如下代码:
代码如下:

  1. document.getElementsByTagName("head")[0].removeChild(document.getElementsByTagName("head")[0].getElementsByTagName("script")[0]);
复制代码






上一篇:Javascript调用C#代码
下一篇:js 动态文字滚动的例子
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-6-19 06:41

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表