浏览器底层机制EC、STACK、VO、AO、GO

1,241 阅读1分钟

浏览器想要执行JS代码,需要提供一个供代码执行的环境: ECStack(Excution Context Stack)执行环境栈=>栈内存(内存中分出的一块)

//创建变量有三步:
1.先创建值,基本类型直接存储在栈中 ,引用类型开辟堆内存
2.(声明)创建变量存储在变量对象中
3.(定义)让变量和值关联

习题:




var a{},b='0',c=0
a[b]='珠峰'
a[c]='培训'
console.log(a[b])

//普通对象key值字符串数字互通 ,所以 a.c覆盖a.b
/*
    对象数据类型:
        属性名类型:
            说法1.属性名类型只能是字符串或者Symbol
            说法2.属性名类型可以是任何基本类型值,处理中可以和字符串互通,但是属性名不能是引用类型,如果是引用类型也转字符串处理
*/

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

//a.x=a={}
//a=a.x={}  a.x成员访问优先级高 这俩都是先访问a.x
var a={n:1}
var b=a
a.x=a={n:2}
console.log(a.x)
console.log(b)

//let a=b=12
//从右到左
//1.创建一个值12
//2. b=12
//3. let a=12