IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Javascript中 VO GO EC -> 正文阅读

[JavaScript知识库]Javascript中 VO GO EC

?当浏览器一打开的时候会开辟两个内存,一个堆内存,一个栈内存,栈内存存的是基本类型,(null,undefiend,number,string,Symbol//唯一值,bigint//安全有效数值,Boolean)
bigint //es7中 出现的 那么就会有人问 什么是安全有效数字呢 因为 当数字足够大的时候,就会出现计算错误 那么安全数字是多少呢 Math.pow(2,53)-1//9007199254740991 在扩展一项 或者是 用Number 怎么获取最大安全数或最小安全数?Number.MAX_SAFE_INTEGER(最大)//9007199254740991 最小呢?Number.MIN_SAFE_INTEGER//(
-9007199254740991)
害,张三:‘我就不信你说的,我来试试’

?我:‘张三,看是不是计算的出错了,还不信我?我能骗你不成?’
? 张三:‘那怎么解决呢?’
我:‘这里就要用到BigInt了’
BigInt(val)//val可以是 数字也可以是纯数字的字符串
结果:BigInt('10')//10n
9007199254740991n+12n

返回的是bigint类型 那就问了那怎么转成正常的类型呢
Number(9007199254741003n)//指定不行,返回的还是错误 那怎么处理呢
9007199254741003n.toString()//'9007199254741003' 解决完事
张三:‘牛啊,哥哥’

堆内存存的是引用类型?

GO(gaGlobal Object)//全局对象

变量对象?VO(Variable Object): 存放当前执行上下文中创建的变量和值

全局执行上下文(?EC(G)?):页面加载后进栈、销毁后出栈

解释 一下 var,const,var 申明变量的过程,比如 var a=2 ?var b=a b=3 console.log(a)//3
? 先是创建值 然后指向 再说个题外话 var 申明的变量 都是存在 GO//全局中
var a=2 是 先是出现一个2 ---> a---->2(a指向2)然后又申明一个变量b 指向a? 就好比b--->a--->2
b=3,因为是基本类型所以修改的就是a---->3
这里我我解释一个函数,给大家解释

?

var x = [12, 23]

function fn(y) {

y[0] = 100;

y = [100]

y[1] = [200]
console.log(y)//[100,[200]]

}

fn(x)

console.log(x)//[100,23]
那么为什么呢,我来解释一下
全局有一个x是存在 GO里面的,因为是引用类型,所以存的是地址,假如[12,23]指向的地址是0x001

在这个函数里面,fn(x)执行x实参传递给形参y y[0]指向的就是0x001修改了全局x的值//[100,23]
第二步 y=[100],这里就好比一个y又重新指向了[100]//假如地址是0x002
y[1]=[200]//先去找y是不是存在 y存在 y[1]=[200]//[200]假如地址是0x003及函数体内 console.log(y)//--->[0x002,0x003]--->[100,[200]]


题外? 再说一个GO里面存放了很多api,比如alert,setInterval,setTimeout....
那么为什么我们在执行中可以用到这些api呢,该怎么解释呢,因为在全局执行上下文中,会默认创建一个window---->GO//指向的是地址,那么在解释一下 为什么 console.log(x)//一个没有申明的变量,会报错,控制台出现x is not defined 如果是console.log(window.x)//undefiend
这是为什么呢,因为值执行上下文中 直接打印未申明的x,先是在执行上下文中找及EC,EC未找到,则去GO里面找,如果没找到,则报错,如果是console.log(window.x)这样的话,全局EC(执行上下文的window指向的GO的地址)因为是一个Object所以不会报错//返回undefiend



?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:15:09  更:2021-11-22 12:16:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:56:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码