javascript基本功002
2021-05-18 15:27
标签:this 例子 问题 undefined 现在 func 运算符 span 地址 1、赋值优先级 按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。 如最高到最低的优先级: 如相同优先级的运算符按从左至右: 这个还关联到引用的问题,如开始时o与g是指向同一个堆内存地址, 然后由于相同优先级的运算符按从左至右所以o.x的栈内存保存的堆内存地址还没有变,那么o.x就先拿出地址后再到o={c:"abc"}指向 新的堆内存地址,而所以g的对内存地址有变动,而o就指向了新堆内存地址,然后后面使用o.x是undefined的,因为上面赋值的o.x与下面获取的o.x已经不是同一个堆内存地址了。 2、基础细节内容例子 工作也很久了,觉得需要沉淀一下,因为现在前端的知识更新太快了,但基础的更新是很慢的,而所有的知识更新都是对基础知识的封装然后更加便利的使用,所以基础扎实才是快速上手新东西的王道。 以上涉及到变量声明提升、this指向、运算符优先级、原型、全局变量、对象属性、原型属性优先级。 对象属性 变量声明提升 全局变量、this指向 全局变量 原型 原型、原型属性优先级 运算符优先级 javascript基本功002 标签:this 例子 问题 undefined 现在 func 运算符 span 地址 原文地址:https://www.cnblogs.com/zhangzhicheng/p/9744545.html一道简单的数学题
z = 78 * (96 + 3 + 45)
// 11232
var o = {n:3};
var g = o;
o.x = o = {c:"abc"};
// g {n:3,x:{c:"abc"}}
// o {c:"abc"}
// o.x undefined
function Foo(){
getName = function(){
console.log(1);
}
return this;
}
Foo.getName = function(){
console.log(2);
}
Foo.prototype.getName = function(){
console.log(3);
}
var getName = function(){
console.log(4);
}
function getName(){
console.log(5);
}
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
//输出值为多少
Foo.getName();
// 2
getName();
// 4
Foo().getName();
// 1
getName();
// 1
new Foo.getName();
// 2
new Foo().getName();
// 3
new new Foo().getName();
// 3