闲来无事? 整理了几道基础题供大佬们下菜 (答案解析在下一题中)
1.0 对象键对此的是字符串比较
let a = {}
b = '0' / b = 0
c = 0 / c = '0'
a[b] = '唐诗'
a[c] = '宋词'
console.log( a[b] )
// 答案都是一致的
1.1 对象键对此的是字符串比较
let a = {}
b = { n:1 } 或 b = { n:'1' }
c = { n:2 / m:2 } 或 c = { n:'2' / m:'2' }
a[b] = '唐诗'
a[c] = '宋词'
console.log( a[b] ) // 答案都是一致的 你答对了吗
console.log( a[c] ) // 答案都是一致的 你答对了吗
console.log( a )
2. Symbol 定义不可变
let a = {}
b = Symbol('1')
c = Symbol('1')
a[b] = '唐诗';
a[c] = '宋词';
console.log( a[b] )
1.0 答案 '宋词' 解析: 对象键对比的是字符串比较 , 所以对比的是 a['0'] , 且不论是 b=0 c='0' , 结果都是宋词
1.1 答案 '宋词' '宋词' [object Object] : '宋词'
3.0 函数作用域
let / var a = 0
b = 0
function A (a) {
A = function (b) {
console.log(a + b++)
}
console.log(a++)
}
A(1)
3.1 函数作用域
let / var a = 0
b = 0
function A (a) {
A = function (b) {
console.log(a + b++)
}
console.log(a++)
}
A(1)
A(2)
4. promise执行顺序
console.log(1)
const promise = new Promise((resolve, reject) => {
console.log(2);
setTimeout(() => {
resolve(3);
reject(4);
},0);
});
promise.then((data) => {
console.log(data);
}).catch((error)=> {
console.log(error);
});
console.log(5);
3.0 答案 输出1 , 解析: 会在内部的新作用域中打印出来 , 注意 console.log(a / b) 也都是0
3.1 答案 输出 1 和 4 , 解析: 内部的 a 已经变成了2 , 且A被重写了不会执行 log(a++) , 且b也变成了2
4 答案 输出 1 2 5 3
家人们 都答对了吗 ~~