JS基础?常见面试题?JS常见面试题?js常见面试题?

闲来无事? 整理了几道基础题供大佬们下菜 (答案解析在下一题中)


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  



家人们 都答对了吗 ~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值