1.Javascript数据类型及运行机制
文章平均质量分 87
主讲Javascript的五大基本数据类型 number, string, boolean, null, 以及undefined.
也为了能搞明白Javascript是如何运行的, 什么是栈内存, 什么是堆内存, 为啥js是单线程的这些问题
狄鸠
写给5年后的自己
展开
-
JavaScript基本数据类型(1)- 数字(Number)
数字 number两大分类数字/NaN常规数字描述包括二进制,,八进制,十进制(整数/小数),十六进制,无穷大/无穷小数JS不像其他后台语言那样分出 int 整数和 float 小数,所有的数统称为 Number示例 // 1. 十进制,生活中最常见的数var num = 10;var PI = 3.88556; // 2. 十六进制, 0~9 a~f #ffff...原创 2019-12-17 16:31:23 · 325 阅读 · 0 评论 -
JavaScript基本数据类型(2)- 字符串(String)
所有 单引号'' 双引号"" ES6字符串`` 包裹起来都是字符串*其他类型转换成字符串其他类型转换成字符串类型有两种方式1,toString把基本类型转换成字符串let s = 20;console.log(s.toString()); // '20'console.log(NaN.toString()); // 'NaN'console.log...原创 2019-12-17 16:33:06 · 309 阅读 · 3 评论 -
JavaScript基本数据类型(3)- 布尔值(boolean)
布尔 boolean布尔值只有 两个值 true 和 false只有 0,NaN,’ ',null,undefined,false 六个值会转换成False,其余的都转换成 True,没有任何特殊情况*转换成布尔类型其他类型转换哼布尔类型有三种方式:1,Booleanconsole.log(Boolean(10)); // trueconsole.log(...原创 2019-12-17 16:35:31 · 627 阅读 · 0 评论 -
JavaScript基本数据类型(4)- 空指针和未定义(null和undefined)
空对象指针 null代表没有,无,意料之中的没有 ==> (开始不知道值,手动设置 null,后期再进行赋值操作,表示"没有对象")let a = null;// 我们开始不知道给null赋什么值,所以先给它一个空值,等想赋值的时候再给他let a = 0;// 有些代码可能会按照这种方式给不确定的值进行赋值,但记住,0是在栈内存中有自己的储存空间的,而null是完完全全的不暂居...原创 2019-12-17 16:41:46 · 566 阅读 · 0 评论 -
JavaScript基本数据类型(5)- 对象/数组(object/Array)
引用数据类型-对象数据类型 object{} 普通对象,[]数组对象,/^&/ 正则对象,Math数学函数对象,日期对象对象Object{[key]:[value], ...}任何对象都是由于零到多组键值对(属性名:属性值)组成的(并且属性命不能重复)创建一个基本的对象let obj = { 1: 'id', name: '张三', age: 6...原创 2019-12-17 16:43:23 · 509 阅读 · 0 评论 -
JavaScript基本数据类型(6)- 函数(function)+底层运行机制
函数数据类型 function函数就是一个方法或者一个功能体,函数就是把实现某个功能的代码放到一起,进行封装,以后想要操作或者实现这个功能,主需要调用我们封装的函数(减少页面中重复的代码,提高代码的使用率,低耦合高内聚)耦合:比如有队夫妻,妻子非常的依赖丈夫,没有丈夫就活不下去,这就是高耦合的表现。如果一个函数只能在某些很极端的条件下,或者搬到另外一个地方用就用不了,通用性和移植性比较差就是高...原创 2019-12-17 16:49:13 · 329 阅读 · 0 评论 -
JavaScript基本数据类型(7)- JS的底层执行流程(栈堆)
JS的执行流程JavaScript语言本身是没法运行代码的,必须有解释器,也就是浏览器的内核,才能帮我们解析代码那么浏览器是如何执行JS代码的?首先从电脑中开辟出一块全局栈内存(电脑内存8G/16G/32G),用来执行代码(栈内存 => Stack)然后全局栈内存中有一个主线程,用来自上而下执行JavaScript代码栈内存里面有三个东西:变量存储空间,值存储空间,代码执行...原创 2019-12-17 16:52:21 · 239 阅读 · 0 评论 -
JavaScript基本数据类型(8)- JS栈内存和堆内存详解
栈内存:拥有作用域,代码执行空间,存储基本值和变量提供一个供 JavaScript 代码自上而下执行的 window 全局栈内存(代码都是在栈中执行的)基本数据类型会直接在栈内存中存放的,引用数据类型会开辟一个堆内存类存放,并且用指针指向其地址堆内存:引用值存储空间存储引用类型值的(对象:键值对形式,函数:字符串形式)=> 当前堆内存如果释放,那么这个引用空间就会彻底销毁,...原创 2019-12-17 16:59:30 · 563 阅读 · 0 评论 -
JavaScript基本数据类型(9)- 变量/函数提升+var的坑点
JS预解析JS 引擎运行 JS 分为两步,1. 预解析,2. 执行代码(1),预解析 JS 引擎会把 js 里面所有的 var 还有 function 提升到当前作用域的最前面(2),代码执行,按照代码书写的顺序从上往下执行预解析分为变量解析(变脸提升)和 函数预解析(函数提升)变量/函数提升变量提升 就是把所有的变量申明提升到当前作用域的最前面函数提升 就是把所有的函数...原创 2019-12-17 17:00:56 · 195 阅读 · 0 评论 -
JavaScript单线程异步机制
浏览器打开会开辟多条线程来支撑浏览器的工作,但是分配给JS进行DOM操作的的线程永远只有一条,所以JS是单线程编程语言,那么JS是怎么进行异步操作代码的呢?首先来看下面的一段代码输出的结果! 我们把定时器的时间设置成了0,代表只要运行了这段代码就立即进行里边函数的运行,然而并没有,而是先把主线程上的 console.log('5') 执行之后才挨个运行定时器在JS中,所有任务可以分...原创 2020-04-28 23:53:40 · 177 阅读 · 0 评论 -
使用Vscode调试Node(全世界最好用的ide)
使用使用Vscode调试Node具体步骤首先点击断点按钮配置lanuch.json文件(先查看下当前目录下有没有.vscode文件,有则删除,然后按以下操作)此时, 根目录下会多一个.vscode文件, 需要注释一个字段, 否则无法进入源码调试进行调试进行源码调试...原创 2020-06-13 14:47:40 · 798 阅读 · 0 评论