随笔分类 - JavaScript
https://wangdoc.com/javascript/
本教程全面介绍 JavaScript 核心语法,覆盖了 ES5 和 DOM 规范的所有内容。
内容上从最简单的讲起,循序渐进、由浅入深,力求清晰易懂。所有章节都带有大量的代码实例,便于理解和模仿,可以用到实际项目中,即学即用。
本教程适合初学者当作 JavaScript 语言入门教程,学完后就可以承担实际的网页开发工作,也适合当作日常使用的参考手册。
JavaScript 后续新增的 ES6 语法,请看《ES6 标准入门教程》。
摘要:<script> 元素还可以动态生成,生成后再插入页面,从而实现脚本的动态加载。 ['a.js', 'b.js'].forEach(function(src) { var script = document.createElement('script'); script.src = src; doc
阅读全文
摘要:defer 属性 为了解决脚本文件下载阻塞网页渲染的问题,一个方法是对 <script> 元素加入 defer 属性。它的作用是延迟脚本的执行,等到 DOM 加载生成后,再执行脚本。 <script src="a.js" defer></script> <script src="b.js" defe
阅读全文
摘要:相等运算符用来比较相同类型的数据时,与严格相等运算符完全一样。 1 == 1.0 // 等同于 1 1.0 比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。下面分成几种情况,讨论不同类型的值互相比较的规则。 (1)原始类型值 原始类型的值会转换成数值再进行比较。
阅读全文
摘要:与全局作用域一样,函数作用域内部也会产生“变量提升”现象。var 命令声明的变量,不管在什么位置,变量声明都会被提升到函数体的头部。 function foo(x) { if (x > 100) { var tmp = x - 100; } } // 等同于 function foo(x) { va
阅读全文
摘要:JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了 Symbol 和 BigInt 数据类型) 数值(number) 字符串(string) 布尔值(boolean):表示真伪的两个特殊值 true 和 false。 undef
阅读全文
摘要:JavaScript 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。 对于 var 命令来说,JavaScript 的区块不构成单独的作用域(scope)。 { var a = 1; } a // 1 上面代码在区块内部,使用 var 命令声明并赋值了变量 a ,然后再区块外部
阅读全文
摘要:标识符(identifier)指的是用来识别各种值的合法名称。 最常见的标识符就是变量名,以及后面要提到的函数名。 JavaScript 语言的标识符对大小写敏感,所以a和A是两个不同的标识符。 标识符有一套命名规则,不符合规则的就是非法标识符。 JavaScript 引擎遇到非法标识符,就会报错。
阅读全文
摘要:JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。 console.log(a); // undefined var a = 1; 上面的代码首先使用 c
阅读全文
摘要:eval 命令接受一个字符串作为参数,并将这个字符串当作语句执行,本质是在当前作用域中,注入代码。
阅读全文
摘要:函数本身也是一个值,也有自己的作用域。 它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。 var a = 1; var x = function () { console.log(a); } function f() { var a = 2; x(); } f() //
阅读全文
摘要:var f = function () { console.log('1'); } function f() { console.log('2'); } f() // 1
阅读全文
摘要:1995年 JavaScript 诞生时,最初像 Java 一样,只设置了null表示"无"。根据 C 语言的传统,null可以自动转为0。 Number(null) // 0 5 + null // 5上面代码中,null转为数字时,自动变成0。 但是,JavaScript 的设计者 Brenda
阅读全文
摘要:1.概述事件发生以后,会产生一个事件对象,作为参数传递给监听函数。浏览器原生提供一个 Event 对象,所有的事件都是这个对象的实例,或者说继承了 Event.prototype 对象。Event 对象本身就是一个构造函数,可以用来生成新的实例。event = new Event(type, opt
阅读全文
摘要:function isPropertySupported(property) { if (property in document.body.style) return true; var prefixes = ['Moz', 'Webkit', 'O', 'ms', 'Khtml']; var p
阅读全文

浙公网安备 33010602011771号