你不能不知道的Js

2020-07-19  本文已影响0人  Lethe35

编程语言&脚本语言

编程语言:有变量有函数有数据结构,可以进行基本的运算。(JS,Java…)
脚本语言:CSS,HTML

1.浏览器组成

shell部分
内核部分 渲染引擎,js引擎,其他模块

2.主浏览器(有一定的市场份额>3%左右;有独立研发的内核)及其内核

Chrome:Webkit/blink
Firefox:Gecko
IE: Trident
Opera:Presto
Safari:Webkit

3.js逼格:

解释性语言(都一行翻译一行成机器码,php,python ----跨平台)(c语言,c++是编译性语言-全读完,一次性编译成某种类型文件)(JAVA是先通过javac编译成.class文件,然后通过jvm翻译成机器码,可跨平台)
单线程 就是同一时间只能一个方块移动,但是我们看到两个同时移动的方块该怎么解释呢?轮转时间片:

image.png
(第一个方块挪了1ms甚至是更小的时间单位,接着换第二个方块挪1ms,一直下去,因为时间差太小,肉眼察觉不出)
ECMA标注

4.JS三大部分

ECMAScript、DOM、BOM

5.如何引入js

6.数据类型

原始值 (栈数据)赋值就是拷贝
Number、String、Boolean、undefined、null
引用值 (堆数据)
Array、Object、Function、date、RegExp ……

7.js语句基本规则

8.运算操作符

9.比较运算符

10.逻辑运算符

10.被认定为false的值

11.循环

image.png

12. wiondow.xxx = xxx 与 return xxx的区别

拿闭包来说,内部函数被return出来之后必须要拿个全局变量保存;但对于window.xxx的xxx来说,它已经是全局变量了,所以把return xxx换成window.xxx=xxx是一样的效果,非要说个区别的话就是xxx不用再用全局变量保存了


image.png

12. ?: 和 ?? 操作符

?: 可选链式操作符
?? 空值合并符(js新特性)

let c = a ?? b;
// 等价于
let c = a !== undefined && a !== null ? a : b;

13. new实例化对象都做了什么?

14. this在不同调用环境下的指向

15. [[scope]]是个啥?

上一篇 下一篇

猜你喜欢

热点阅读