阅读js高级程序设计---学习笔记

38 阅读2分钟

嘿嘿,好早之前就想认真的阅读一下这本书了, 在阅读的过程中记下哪些我认为比较有用的一些知识点,可能会比较乱,全当复习一遍吧

1、this的引用

注意点:
在箭头函数中,this引用的是定义函数的上下文。
而在标准函数中,this引用的是把函数当成方法调用的上下文对象。
在应用过程中:
有时候当this的值指向的对象不是想要的对象。这时候将回调函数写成箭头函数

函数的apply和call还有bind方法

call()方法与 apply()的作用一样,只是传参的形式不同。第一个参数跟 apply()一样,也是 this 值,而剩下的要传给被调用函数的参数则是逐个传递的。

apply()和 call()真正强大的地方并不是给函数传参,而是控制函数调用上下文即函数体内 this 值的能力。

参考下面的例子: image.png

bind方法: bind()方法会创建一个新的函数实例, 其 this 值会被绑定到传给 bind()的对象

image.png

变量会声明提升,函数也会声明提升

啊哈,原来函数也能声明提升啊

image.png 理解函数声明与函数表达式之间的区别,关键是理解提升

BOM

BOM里面常用的有三个对象location对象、screen对象、history对象
location对象:
URLSearchParams 提供了一组标准 API 方法,通过它们可以检查和修改查询字符串。给 URLSearchParams 构造函数传入一个查询字符串,就可以创建一个实例。这个实例上暴露了 get()、 set()和 delete()等方法,可以对查询字符串执行相应操作。

screen对象:
这个对 象中保存的纯粹是客户端能力信息,也就是浏览器窗口外面的客户端显示器的信息,比如像素宽度和像 素高度。每个浏览器都会在 screen 对象上暴露不同的属性。

history对象:
history 对象表示当前窗口首次使用以来用户的导航历史记录。因为 history 是 window 的属性, 所以每个 window 都有自己的 history 对象。出于安全考虑,这个对象不会暴露用户访问过的 URL, 但可以通过它在不知道实际 URL 的情况下前进和后退。

存取元素样式

大多数属性名会这样直接转换过来。但有一个 CSS 属性名不能直接转换,它就是 float。因为 float 是 JavaScript 的保留字,所以不能用作属性名。

image.png

在混杂模式下,可以把 style.width 设置为"20",相当于"20px"。
如果是在标准模式下,把 style.width 设置为"20"会被 忽略,因为没有单位。
实践中,最好一直加上单位。大家要记住哦。不知道对大家有没有帮助,记录一些小小的知识点