JavaScript高级程序设计 - 笔记
第三章 基本概念
1. <Script> 元素
<Script>的属性:
async: 表示应该要以立即下载脚本 ,但不妨碍页面中的其他操作.
defer: 脚本可以延迟到文档完全被解析和显示后再执行,只对外部脚本文件有效.
引用js文件格式如下:
<script type="text/javascript" defer="defer" async="true/false" src="js文档地址"></script>
defer="defer":该属性用来通知浏览器,这段脚本代码将不会产生任何文档内容。例如JavaScript代码中的document.write()方法将不会骑作用,浏览器遇到这样的代码将会忽略,并继续执行后面的代码。属性只能是defer,与属性名相同。在HTML语法格式下,也允许不定义属性值,仅仅使用属性名。
async="true/false":该属性为html5中新增的属性,它的作用是能够异步地下载和执行脚本,不因为加载脚本而阻塞页面的加载。一旦下载完毕就会立刻执行。
async和defer一样,都不会阻塞其他资源下载,所以不会影响页面的加载,但在async的情况下,js文档一旦下载完毕就会立刻执行,所以很有可能不是按照原本的顺序来执行,如果js有依赖性,就要注意了。
如下图:
defer和async的区别: 下载后是否立即执行为主要区别
2. 在使用<script>嵌入代码时, 不要在代码中的任何地方出现</script>字符串, 否则会出现无法正确解析的错误, 如
<script>
function something() {
alert(“</script>”) // 错误
}
3. 在页面中创建一个<noscript>本页面不支持javascript</noscript>, 用于在不支持javascript的浏览器上显示替代的内容.
4. 文档模式分为标准模式和混杂模式, 混杂模式会让IE的行为与IE5相同, 其主要影响css内容的呈现.
5. typeof (null) === "object"
6. Boolean 类型, Boolean('False') === true; 输入任何非空字符都为true, 输入任何非0和NaN的Number类型都为true.
7. Number 类型, var x = 56, 十进制, x = 070 八进制以0开头, x = 0xFF 16进制以0x开头.
JavaScript小数在做四则运算时,精度会丢失,如:alert(0.09999999 + 0.00000001);//弹出: 0.09999999999999999
0.1 + 0.2 === 0.30000000000000004
任何涉及NaN的计算都返回NaN, 比如 NaN + 3 === NaN
NaN 与任何值都不相等, NaN == NaN // false;
8. parseInt('12', xxx)//当存在第二个参数时, 会把它做为进制如parseInt('011', 8) 8进制
9. Number.toString(x) 方法的参数表示输出值的基数, 该参数仅对输入为数据时有效, 如 (20).toString(16) // 输出1F
10. Object
Object每个实例都有以下几个属性:
constructor: 创建当前对象的函数.
hasOwnProperty(name) 检查给定属性是否在当前对象中存在.
isPrototypeOf(object)
propertyIsEnumerable (propertyName) 用于检查给定属性是否能使用for in语句来枚举.
valueOf() 返回对象的字符串, 数值 或 bool 值.
11. with 语句
作用是当当前代码的作用域设置到一个特定的对象上.
如 with(window.location){console.log(href)} //当前作用域改为window.location. href可以直接调用.
浙公网安备 33010602011771号