《JS高级程序设计》要点总结

允我心安 提交于 2020-01-29 17:24:26

第1章

没记下啥,多读几遍再写吧。

第2章 在HTML中使用JavaScript

  1. 包含在< script>元素内部的JavaScript代码将被从上至下依次解释,解析js代码时(包括下载js文件时),页面的处理也会暂时停止,因此通常将js代码放入< head>标签内的最后几行;
  2. < script>的src属性可以包含来自外部域的js文件;(安全性问题)
  3. 延迟脚本,< script>标签的defer属性,当defer = “defer”,js脚本将会延迟到浏览器遇到< /html>时才执行,理应按顺序,但实际情况不一定按顺序,因此最好只包含一个延迟脚本;
  4. 异步脚本,< script>标签的asynv属性,只适用于外部脚本文件,并告诉浏览器立即下载,但并不保证按先后顺序执行;
  5. 推荐使用外部文件:
    1)易于维护
    2)可缓存:若多个页面使用同一js文件,只需下载一次,加快了页面加载速度
  • 不理解的:指定async属性的目的不是让页面等待两个脚本下载和执行,从而异步加载其他内容。为此,建议异步脚本不要在加载期间修改DOM?(P14)
  1. < noscript>当浏览器不支持JavaScript时让页面平稳地退化;
    1)浏览器不支持脚本
    2)浏览器支持脚本,但脚本被禁用
<noscript>
    <p>本页面需要浏览器支持(启用)JavaScript。</p>
</noscript>

第3章 基本概念

3.1~3.3 语法、关键字和保留字、变量

  1. 区别大小写:True和False都不是Boolean类型;
  2. typeof是关键字而不是函数名,使用时不需要加括号;
  3. typeof null 返回object,null被认为是一个空的对象引用,如果定义的变量准备在将来用于保存对象,最好初始化为null而不是其他值;
  4. 隐式全局变量很难维护,不推荐这么用;
  5. 可以使用一条语句定义多个变量
var message = "hi",
      found = false,
      age =29;

3.4 数据类型

  1. undefined类型只有一个值,即其本身;
  2. null是另一个只有一个值的数据类型;
  3. undefined值是派生自null值的,因此undefined == null返回true;
  4. 数值字面量:八进制必须以0开头,其后是0~7,若超出范围,前导0才会被忽略;十六进制前2位必须是0x;
  5. 保存浮点数值的内存空间是保存证书的2倍,因此ECMAScript会不失时机地将浮点数值转为整数;
  6. var floatNum = 3.15e7; //等于31500000
  7. 浮点数值最高精度是17位小数,但其算术运算的精度远不及整数,因此无法测试特定的浮点数值;
  8. NaN用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)
  9. isNaN()会尝试将参数转为数值(我理解,先Number(参数));
  10. isNaN()也适用于对象:valueOf() → toString() ;
  11. Number(“ ”) 得到0;而parseInt(“ ”)得到NaN;
  12. Number()适用于任何数据类型;parseInt()、parseFloat()只用于字符串;
  13. parseInt(): 更多地考虑参数是否符合数值模式,
    1)找到第一个非空格字符;
    2)若第一个非空格字符不是数字或负号,则返回NaN;
    3)parseInt()会识别各进制,但ECMAScript3和5存在分歧,因此推荐提供第二个参数(基数);
  14. parseFloat()解析到遇见第一个无效的浮点数字字符为止(第二个小数点无效,并且会忽略先导0,只解析十进制);
  15. 字符串中若包含转义序列,在str.length时,转移序列当1个字符计算;
  16. null和undefined没有toString()方法,此时可用Sting()方法;
  17. toString()方法可传基数
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!