2016年10月8日星期六

Google Blog 10/09/2016 (a.m.)

    • ECMAScript中有5种简单数据类型(也称为基本数据类型):UndefinedNullBooleanNumberString
    • 还有1种复杂数据类型——Object
    • 即用var操作符定义的变量将成为定义该变量的作用域中的局部变量
      • 在函数中使用var定义一个变量 这个变量在函数退出之后就会被销毁..如果在函数中没有使用`var`定义一个变量,那么这个变量就会变成全局变量.在函数外部可以被访问到,这是很可怕的事情
    • 给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误。
    • 在严格模式下,不能定义名为evalarguments的变量,否则会导致语法错误。
    • 关键字也是语言保留的,不能用作标识符
    • 尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字
    • 区分大小写
    • 第一个字符必须是一个字母、下划线(_)或一个美元符号($
    • 其他字符可以是字母、下划线、美元符号或数字
    • ECMAScript标识符采用驼峰大小写格式
    • 要在整个脚本中启用严格模式,可以在顶部添加如下代码
      • "use strict";
    • 指定函数在严格模式下执
      • 在函数体内部使用"use strict";
    • 以一个分号结尾;如果省略分号,则由解析器确定语句的结尾
    • 建议任何时候都不要省略它
      • 压缩代码如果没有分号可能会导致压缩错误
    • 最佳实践是始终在控制语句中使用代码块——即使代码块中只有一条语句
    • “立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行
    • 没有 deferasync,浏览器会立即加载并执行指定的脚本
    • 加载与执行并行进行(异步)
    • 加载并行进行(异步)
    • 执行要在所有元素解析完成之后
    • DOMContentLoaded 事件触发之前完成
    • deferasync 在网络读取(下载)这块儿是一样的,都是异步的(相较于 HTML 解析)
    • 按照加载顺序执行脚本的,这一点要善加利用
    • 只要它加载完了就会立刻执行
    • 乱序执行的主
    • 对于那些可以不依赖任何脚本或不被任何脚本依赖的脚本来说却是非常合适
    • 最典型的例子:Google Analytics
    • HTML5规范要求脚本执行应该按照脚本出现的先后顺序执行,但实际情况下,延迟脚本不一定按照先后顺序执行
  • tags: JavaScript高级程序设计 JavaScript

    • 所有<script>元素都会按照它们在页面中出现的先后顺序依次被解析。
    • 一般应该把<script>元素放在页面最后,即主要内容后面
    • 使用<noscript>元素可以指定在不支持脚本的浏览器中显示的替代内容
  • tags: JavaScript高级程序设计 JavaScript

    • 可维护性
    • 如果有两个页面都使用同一个文件,那么这个文件只需下载一次
    • 通过外部文件来包含JavaScript无须使用前面提到XHTML或注释hack

Posted from Diigo. The rest of my favorite links are here.

没有评论:

发表评论