今天学习了[深入理解JS]这门课程,我做出了如下的总结 1.JS是单线程的,但是Render进程里面有多个线程 2.JS线程和GUI线程互斥,执行大的计算任务会导致页面卡顿 3.基础数据类型存在栈上,复杂类型存在堆上 4.const,let没有变量提升,提前使用会报错,但var有变量提升 5.JS也有编译的过程,执行之前会生成执行上下文 6.一个执行上下文包括变量环境,词法环境,this 7.变量环境里面有一个指向外部函数执行上下文的指针,形成了作用域链 8.全局执行上下文只有一份 9.this和执行上下文绑定
从JS的基本概念中我了解到 JS是单线程,动态弱类型语言,面向对象,函数式,安全但性能差。 其中, 动态语言(弱类型语言)是运行时才确定数据类型的语言,变量在使用之前无需申明类型 如const company ='Bytedance' 静态语言(强类型语言)是编译时变量的数据类型就需要确定的语言 如String company ='Bytedance'
JS的数据类型(7种) 基础类型:字符串,undifined,数字,null,symbol,bigint,布尔
由此我们可以看出, 复杂的数据类型存的是数据地址 简单的数据类型存的是值
由此我们可以知道, 复杂的数据类型原始值是可以改变的 基础数据类型是不可以改变的
我的思考
JS是一门非常重要的编程语言,无论是在前端开发,还是在后端开发中都扮演着非常重要的角色。 很多人对 JavaScript 的印象都只是“简单易学”,对其掌握也仅仅停留在“会用就好”,以至于不求甚解、迷失于 JavaScript 。究其原因,他们从来都只是“写代码”,而没有去真正去了解、去探索“什么是语言”。
JavaScript 作为一门语言,虽然易上手,但却有着诸多复杂微妙的机制,想要真正掌握绝非易事。而这些机制,正是 JavaScript 语言的精髓。只有当你深入理解语言内部的实现原理,才能做到无论出现什么新技术、新框架,都能轻松应对。