跟着月影学JavaScript | 青训营笔记

105 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第3天。

JavaScript

是什么

一种具有函数优先的轻量级,解释型或即时编译型的语言。

做什么

对网页的行为进行定义

怎么做

引入

  • 通过script标签引入外部js文件
  • 在script中编写js代码

如果我们通过script标签将js文件引入,那么我们在哪个位置进行呢?

  • head标签
  • body标签:由于浏览器会直接加载并执行相应的脚本,所以我们通常将script放在body标签的末尾进行引入,从而避免HTML为解析导致页面无内容的发生。
  • 异步引入 :不会阻塞页面的解析
    • defer:脚本加载完等待其他加载完成后执行
    • async:脚本加载完立刻执行

数据类型

JavaScript共有8中数据类型,其中,7种为简单数据类型(原始类型),他们是:Undefined,Null,Number,String,Boolean,Symbol(符号<为ES6新增类型>),BigInt。还有一种复杂数据类型(引用类型):Object。

其中6中简单数据类型属于原始值1种复杂数据类型属于引用值。

引用值与原始值

保存原始值的变量是按值访问的,而引用值是保存在内存中的对象。 当我们操作原始值时,我们操作的就是存储在变量中的实际值,而当我们操作引用值时,JavaScript不允许直接访问内存的位置,因此我们不能直接操作对象本身所在的内存空间而是操作对该对象的引用。

事件委托

当所有子元素都需要绑定相同的事件的时候,可以把事件绑定在父元素身上,这就是事件委托。

  • 绑定在父元素上只需要绑定一次,节省性能
  • 子元素不需要每个都去绑定同一事件
  • 如果后续又有新的子元素添加,会由于事件委托的原因,自动接收到父元素的事件监听

精度缺失问题

0.1 + 0.2 === 0.3为false:JavaScript中小数是浮点数,需进行二进制转化运算,有些小数无法用二进制表示,所以只能取近似值,造成误差。