首页 > 开发 > JS > 正文

你所要知道JS(DHTML)中的一些技巧

2024-09-06 12:43:59
字体:
来源:转载
供稿:网友
这些天都没有更新日志了,这篇文章就也算是自己的一些经验谈了。简单的说一些技巧给大家,希望对你有所帮助,如果还有疑问,可以在下边留言。

一、全等运算符 
在JS中,不为0的数皆为true,除了几个特殊的变量除外。比如:undefined,null,""等。这在大多数情况下,也是我们所期望的。
但你不应该忽略这个全等运算符。因此需要较为严格的效验下,我们可以用===这个全等运算符,看下面的代码:
//平常的一些效验
var foo = function(arg) {
  if (!arg) {
    alert("normal false");
  } else { alert("true"); }
}
foo(null); //false
foo(false); //false
foo(""); //false
foo("never-online"); //true
//全等效验
var foo = function(arg) {
  if (arg===false) {
    alert("false");
  } else { alert("not a false variable") }
}
foo(null); //not a false variable
foo(false); //false
foo(""); //not a false variable
foo("never-online"); //not a false variable

二、变量的应用之一——去除网页嵌套
例如,你要把baidu.com嵌入你自己的一个iframe里,得到的结果却不是你想要的,因为它有这么一句代码
if(self!=top){top.location=self.location;}
这句代码的意思是:如果网页有嵌套的话(也就是用了frame技术的话,将去除嵌套,并把该frame里的url给到顶层窗口)
这是个令人头痛的问题,比如,在一些免费空间中也使用了上面的这句代码。如果去除呢?用这一句代码就可去除嵌套:
<script>
var location='never-online';
</script>
下面来说明用了这句代码为什么可以去除嵌套:
我们知道,JS变量中,假如变量是这样
 <script type="text/javascript">
 //<![CDATA[
    myVar = "never-online";
    (function () {
      //var myVar;
      alert(myVar)
    })()
 //]]>
 </script>
是可以显示"never-online"这个字符串的。而当你把//var myVar这句还原时(也就是不注释掉它时)结果就不一样了,将显示undefined。我们用var location="never-online"时也是一样的道理,以下的代码也许将会为你解疑。
 <script type="text/javascript">
 //<![CDATA[
    alert(location);
    //var location;
 //]]>
 </script>
同样,第二次运行时,把var location这句还原,比较一下就应该明白原因了。同理,window,document都是如此。有兴趣你就可以试试。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表