随笔分类 -  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 阅读全文
posted @ 2024-06-09 13:51 ladybug7 阅读(49) 评论(0) 推荐(0)
摘要:defer 属性 为了解决脚本文件下载阻塞网页渲染的问题,一个方法是对 <script> 元素加入 defer 属性。它的作用是延迟脚本的执行,等到 DOM 加载生成后,再执行脚本。 <script src="a.js" defer></script> <script src="b.js" defe 阅读全文
posted @ 2024-06-09 10:33 ladybug7 阅读(75) 评论(0) 推荐(0)
摘要:相等运算符用来比较相同类型的数据时,与严格相等运算符完全一样。 1 == 1.0 // 等同于 1 1.0 比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。下面分成几种情况,讨论不同类型的值互相比较的规则。 (1)原始类型值 原始类型的值会转换成数值再进行比较。 阅读全文
posted @ 2024-06-08 20:58 ladybug7 阅读(38) 评论(0) 推荐(0)
摘要:与全局作用域一样,函数作用域内部也会产生“变量提升”现象。var 命令声明的变量,不管在什么位置,变量声明都会被提升到函数体的头部。 function foo(x) { if (x > 100) { var tmp = x - 100; } } // 等同于 function foo(x) { va 阅读全文
posted @ 2024-06-08 16:38 ladybug7 阅读(37) 评论(0) 推荐(0)
摘要:JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了 Symbol 和 BigInt 数据类型) 数值(number) 字符串(string) 布尔值(boolean):表示真伪的两个特殊值 true 和 false。 undef 阅读全文
posted @ 2024-06-08 11:44 ladybug7 阅读(36) 评论(0) 推荐(0)
摘要:JavaScript 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。 对于 var 命令来说,JavaScript 的区块不构成单独的作用域(scope)。 { var a = 1; } a // 1 上面代码在区块内部,使用 var 命令声明并赋值了变量 a ,然后再区块外部 阅读全文
posted @ 2024-06-08 11:17 ladybug7 阅读(60) 评论(0) 推荐(0)
摘要:标识符(identifier)指的是用来识别各种值的合法名称。 最常见的标识符就是变量名,以及后面要提到的函数名。 JavaScript 语言的标识符对大小写敏感,所以a和A是两个不同的标识符。 标识符有一套命名规则,不符合规则的就是非法标识符。 JavaScript 引擎遇到非法标识符,就会报错。 阅读全文
posted @ 2024-06-08 11:08 ladybug7 阅读(67) 评论(0) 推荐(0)
摘要:JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。 console.log(a); // undefined var a = 1; 上面的代码首先使用 c 阅读全文
posted @ 2024-06-08 11:04 ladybug7 阅读(62) 评论(0) 推荐(0)
摘要:eval 命令接受一个字符串作为参数,并将这个字符串当作语句执行,本质是在当前作用域中,注入代码。 阅读全文
posted @ 2024-06-03 17:51 ladybug7 阅读(18) 评论(0) 推荐(0)
摘要:函数本身也是一个值,也有自己的作用域。 它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。 var a = 1; var x = function () { console.log(a); } function f() { var a = 2; x(); } f() // 阅读全文
posted @ 2024-06-03 16:23 ladybug7 阅读(27) 评论(0) 推荐(0)
摘要:var f = function () { console.log('1'); } function f() { console.log('2'); } f() // 1 阅读全文
posted @ 2024-06-03 15:09 ladybug7 阅读(16) 评论(0) 推荐(0)
摘要:1995年 JavaScript 诞生时,最初像 Java 一样,只设置了null表示"无"。根据 C 语言的传统,null可以自动转为0。 Number(null) // 0 5 + null // 5上面代码中,null转为数字时,自动变成0。 但是,JavaScript 的设计者 Brenda 阅读全文
posted @ 2024-06-03 11:38 ladybug7 阅读(74) 评论(0) 推荐(0)
摘要:1.概述事件发生以后,会产生一个事件对象,作为参数传递给监听函数。浏览器原生提供一个 Event 对象,所有的事件都是这个对象的实例,或者说继承了 Event.prototype 对象。Event 对象本身就是一个构造函数,可以用来生成新的实例。event = new Event(type, opt 阅读全文
posted @ 2024-05-27 14:53 ladybug7 阅读(38) 评论(0) 推荐(0)
摘要:function isPropertySupported(property) { if (property in document.body.style) return true; var prefixes = ['Moz', 'Webkit', 'O', 'ms', 'Khtml']; var p 阅读全文
posted @ 2024-05-27 09:07 ladybug7 阅读(16) 评论(0) 推荐(0)