Skip to content

JavaScript

d0c9a1a14fd60324bf515edef0f06c7d_MD5


JS核心语法

引入方法

58700c7e71f0cb0d02de1c4bc8c93200_MD5 为什么放在body底部? 因为解析需要时间.如果放在开头,那么1.解析js代码花费时间过长,就会导致页面加载慢.2.由于某些标签没有解析,那么可能会导致js报错. e23561759d730bcd0058db1765c32ce3_MD5

alert('hello');//分号可加可不加,但一般要么都加,要么都不加 这是弹出一个弹框的.

js代码可以定义在页面的任意位置.但还是建议放在body底部.如果通过外部引入,那么也放在body底部.

变量

a5e5c0c1e235ccd338612e304f2a1582_MD5 console.log(PI); 输入结果在f12的控制台里. 也有种: 1e31b1334359a423c72fa26c9cf5440e_MD5 也就是直接改变页面内容. alert全称是window.alert,但是window可以省略不写.

数据类型

cf752c4fc389a60a11d6e53904ee40b9_MD5 db3b656f92f9f63107ef395462188a42_MD5 alert(typeof null) 返回的是object(表示对象为空) 模版字符串 bf64c39177bbdf86ccd46ca69c27c249_MD5

function

不需要指定返回值类型(因为是弱类型语言) 020716c1b8985cd148aa32030d92942a_MD5 如果传入的参数比形参多,那么多传的就会被抛弃. 匿名函数: a1d767bbe6c0b79c51ab010d2bdb5099_MD5 实际上箭头函数更多使用

自定义对象

this指向对象本身 a9414adbc41dbc94911910cf30d8d1ed_MD5 最后一个属性结尾的逗号可写可不写.

注意:对象当中的函数使用箭头函数容易有bug,因为箭头函数当中this指向的是当前对象的父级. ab39a80041b3d19960c9700615b50fe9_MD5因此不推荐

JSON

e862e4763bdc04e1b4f8ffc72bcfe275_MD5 这两者只是看起来像而已. 两者可以互相转化: 16aa2320716e93fb22188b0fe362babe_MD5 可以这样显示: cbad94faa3f79694305094e9bb2ef7ee_MD5 98aa7caa2cb2c936db49b457a59b572d_MD5 转成对象可以这样:(注意JSON中用的是双引号,因此示例中定义string时用的是单引号) 2d560ce19d8533c4f94e8d3d1cb28db0_MD5

DOM

ed91b373f016eb1d36b5c64da06c3d46_MD5 形成的树就是DOM树 ad1407e02f7dc74531e1b5d281d7b5d2_MD5 b628434142c25b54cf157186a6f698f6_MD5 innerHTML:修改HTML方法 91a1c1a56b195f7c2092975c9a0ac04d_MD5 下面是和上面相同的效果 417ff4b33d51dba15e5ba96f1e8730b5_MD5 以下这些方法已经被抛弃了,因为都可以被querySelector覆盖 3334cd74e1572e47e162b2bbd0ecf1bf_MD5

事件监听

dfafd9cbec3d196af220b8becccccab4_MD5 75b93ef961ad43a17dc1b4a1ba70231d_MD5 dc1000dd47802ca37ec7709d1b497a3b_MD5 早期写法: baef36795b294444dc3acaf56df9a0ea_MD5 第一种方法:可以多次绑定同一事件,所有函数都会被执行 第二种方法:如果多次绑定同一事件,后面的会把前面的覆盖掉. 因此推荐第一种.

常见的:mouseenter mouseleave

常见事件

7dbecaf64770d58e2975787d1046efb3_MD5 焦点:比如点进去输入框就是"获得焦点",离开就是"失去焦点"

模块化

821f989a7335659b21740c04483eda10_MD5 记得引入: 664694c2d545c79167305d3761aa1691_MD5 假如我把公共函数抽取出来到util.js acda67b21cea80b22a52bb2437ca7129_MD5 那么需要在eventDemo.js里引入util.js f4076050eabc3167562682405d48675d_MD5 但这样还是不行,既然外部引用了,那么就需要暴露出去:(使用export) 94687ff14c895f9d3abab1f8c4378ba6_MD5 但是这样还是不行.由于我们已经把js模块化了,因此我们需要告诉浏览器才行.需要加一个type="module": cf1daf3c60aaf90c8ee7b87c56f1fe34_MD5