-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2019年9月8日 #15
Comments
函数内的变量会在函数退出后直接销毁。不加var 或者let 就会声明全局变量,在函数外部的任何地方都可以被访问到,但是不推荐 |
typeof操作符 |
判断一个函数是否声明? |
从逻辑来看,null值表示一个空对象指针,所以typeof才会为object。 |
转换为false的值 |
Number类型使用IEEE754格式来表示浮点数和整数。 如果超出了Number.MAX_VALUE的数会被转化为Infinity 任何涉及NaN的操作都会返回NaN,NaN与任何值都不等包括其本身 |
把非数值转换为数值的函数 |
Number 转换规则(一元+号的操作与Number相同) |
因为Number在转换数值时比较复杂且不够合理,因此在处理整数时,更常用parseInt() parseInt(value,进制),parseInt提供了第二个参数指进制,为了解决ES3和ES5会将例如070转为不同进制的数,于是就提供了第二个参数,来保证结果的正确,如果指定了第二个参数,value值可以不添加前缀 parseFloat和parseInt是类似的,只是一个会忽略小数点一个不会。 |
字符串的特点是:字符串是不可变的,即一旦创建字符串,他的值就不能改变,要改变的话只能销毁原来的字符串,再用另一个新的字符串填充该变量。 |
script 标签的属性:
<script async src="script.js"></script>async:只对外部脚本有效,表示应该立即下载脚本,但不应妨碍页面中的其他操作,
defer:表示脚本可以延迟到文档完全被解析和显示之后执行。
没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。
有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
<script defer src="myscript.js"></script>有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成
defer:元素解析完之后执行,按照加载顺序执行脚本
async:加载完后立即执行,
defer 和 async 在网络读取(下载)这块儿是一样的,都是异步的(相较于 HTML 解析)
它俩的差别在于脚本下载完之后何时执行,显然 defer 是最接近我们对于应用脚本加载和执行的要求的
关于 defer,此图未尽之处在于它是按照加载顺序执行脚本的,这一点要善加利用
async 则是一个乱序执行的主,反正对它来说脚本的加载和执行是紧紧挨着的,所以不管你声明的顺序如何,只要它加载完了就会立刻执行
仔细想想,async 对于应用脚本的用处不大,因为它完全不考虑依赖(哪怕是最低级的顺序执行),不过它对于那些可以不依赖任何脚本或不被任何脚本依赖的脚本来说却是非常合适的,最典型的例子:Google Analytics
The text was updated successfully, but these errors were encountered: