zoukankan      html  css  js  c++  java
  • 几个要注意的javascript小case

    javascript简单很容易上手,但是有时会被一些小case搞的晕头转向。它虽然和主流语言有着相似的语法,但是却有着太多自己的特性,了解这些小特性,你会感觉它很强大,反而就会走向另一个极端。

    1,关于script标记

    不要在<script>标记内部出现</script>,会被html解析成结束标记而产生错误。

    1 <script type="text/javascript">
    2 alert("</script>");
    3 </script>

    将出现错误,我们可以这样写:alert("</sc“+”ript>");
       
    2,defer  延迟执行

    1 <script src="scripts/demo.js" type="text/javascript" defer="defer"></script>

    只用于外部js,标识浏览器在解析完整个页面之后再执行的js。

    但是还是建议把js放到页面底部来实现在页面解析完毕之后再执行js,而不是用defer。

    因为并不是所有的浏览器都支持defer,不过现在主流的浏览器ie,ff,chrome都支持defer。
       
    3,为什么要用  //<![CDATA[ 

    我们应该都见过js如下推荐的写法,不过我们没加也是可以正常运行的??

    1 <script type="text/javascript">
    2 //<![CDATA[
    3 // your js code
    4 // ]]>
    5 </script>

    为什么要这样写,看下边这段代码

    1 <script type="text/javascript">
    2 if(a < b)
    3 {
    4 // your code
    5 }
    6 </script>

    这段代码html里没问题,但是在xhtml的标准里,所有的 < 都会被当做一个标签的开始来解析,如果之后跟空格将会解析语法错误,上述的写法在xhtml里将出现语法错误。

    为了兼容,我们可以用 &lt; 来替代 < ,并且这样可以正常运行,但是这样代码将很难理解,不推荐。

    第二种方法:

    1 <script type="text/javascript">
    2 <![CDATA[
    3 if(a < b)
    4 {
    5 // your code
    6 }
    7 ]]>
    8 </script>

    xhtml里把CDATA片段代码会当成普通文本处理,大功告成。

    但是,一些不兼容xhtml的浏览器,是不识别CDATA的,因此就出现了上面的推荐写法。

    ps:现在主流浏览器并不需要加CDATA也能正常解析,可能是浏览器进行了特殊的处理。

       
    4,给自己的页面加<noscript></noscript>

    面对越来越多的平台、设备都能联网,面对越来越多样化的用户,这一行代码还是有必要的。

    5,直接给从未声明的变量赋值

    直接给从未声明的变量赋值,不会产生错误,而是会产生一个全局的变量,它将会在页面关闭时才会释放。

    ps:相对于服务器端的语言(C#、java等),javascript运行于用户的浏览器,更应该注意管理自己的变量、及时的释放和程序的逻辑,用户机器配置、浏览器版本都不可预测的,滥用用户资源、产生意想不到的结果都是应该避免的。

    未完。。。。。。。

  • 相关阅读:
    树莓派安装parrot linux记录
    Arch linux(UEFI+GPT)安装及后续优化教程
    VS部分安全函数用法
    C语言博客作业06--结构体&文件
    C语言博客作业05--指针
    C语言博客作业04--数组
    C语言博客作业03--函数
    C语言博客作业02--循环结构
    DS博客作业08--课程总结
    DS博客作业07--查找
  • 原文地址:https://www.cnblogs.com/forcertain/p/2361630.html
Copyright © 2011-2022 走看看