
获得徽章 0
- #沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk 人生缺张草稿🌾
以下代码输出的结果是什么
let obj = {
num1: 117
}
let res = obj;
obj.child = ojb = {num2: 935};
var x = y = res.child.num2;
console.log(obj.child);
console.log(re.nums1);
console.log(y);
// js在执行赋值语句时,会先从左往右解析变量名,转换为变量值,然后从左到右执行赋值。
obj.child = {num2:935}
{num1:117}.child = {num2:935}
此时res为{num1:117, child: {num2: 935}}'
同理var x = y = res.child.num2 y = 935展开赞过11 - #沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿
以下代码输出的结果是什么
let obj = {
num1: 117
}
let res = obj;
obj.child = ojb = {num2: 935};
var x = y = res.child.num2;
console.log(obj.child);
console.log(re.nums1);
console.log(y);
// js在执行赋值语句时,会先从左往右解析变量名,转换为变量值,然后从左到右执行赋值。
obj.child = {num2:935}
{num1:117}.child = {num2:935}
此时res为{num1:117, child: {num2: 935}}'
同理var x = y = res.child.num2 y = 935展开赞过评论1 - #沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿🌾
执行以下程序,分别输出什么
for(var i = 0;i<2;i++){
setTimeout(function(){console.log(i)},0) ….①
}
for(var i = 0;i<2;i++){
(function(i){
setTimeout(function(){console.log(i);},0) …②
}(i))
}
A.setTimeout是异步的,定时函数被加入执行队列,等(for循环)主程序运行完毕时,此时再调用定时函数,i的值已经变为2,两次的定时函数都会共用i=2这个值,因此打印2个2
B. js的作用域是链式的,当for循环函数内部的子块有引用的时候是不会销毁的。这里运用了闭包,外层 function(i)保持着对i的引用,因此每次 i的值得以保留,每次调用定时函数内层function都有自己的私有变量值。 因此打印 0 1展开赞过评论1 - #沸你不可#
执行以下程序,分别输出什么
for(var i = 0;i<2;i++){
setTimeout(function(){console.log(i)},0) ….①
}
for(var i = 0;i<2;i++){
(function(i){
setTimeout(function(){console.log(i);},0) …②
}(i))
}
A.setTimeout是异步的,定时函数被加入执行队列,等(for循环)主程序运行完毕时,此时再调用定时函数,i的值已经变为2,两次的定时函数都会共用i=2这个值,因此打印2个2
B. js的作用域是链式的,当for循环函数内部的子块有引用的时候是不会销毁的。这里运用了闭包,外层 function(i)保持着对i的引用,因此每次 i的值得以保留,每次调用定时函数内层function都有自己的私有变量值。 因此打印 0 1展开赞过评论2