面试题1:

useState执行原理:提升state到外部作用域,在函数外层定义state

let _state=[],index = 0
function useState(initialState){
    let curIndex = index
    _state[curIndex] = _state[curIndex]===undefined?initialState:_state[curIndex]
    const setState = ((newState)=>{
        if(Object.is(newState,_state[curIndex]){
            return
        }
        _state[curIndex] = newState
        React.render(<App />,rootElement)
        index=0
    }
    index+=1
    return [_state[curIndex],setState]

}

['1','2','3','10','10'].map(parseInt)的返回值    --------->[1,NaN,NaN,3,4]

首先:

如果想让 parseInt(string, radix) 返回 NaN,有两种情况:

  1. 第一个参数不能转换成数字。

  2. 第二个参数不在 2 到 36 之间。

parseInt(item,index):parseInt接受两个参数,第二个参数不传或传0默认显示为将item转为10进制数,['1','2','3','10','10'].map()相当于把1,2,3,10,10这些元素作为item传递给parseInt,再把对应的下标0,1,2,3,4作为parseInt的第二个参数index,而parseInt第二个参数表示基数,即把item转为index进制数,所以['1','2','3','10','10'].map(parseInt)的返回值应该为[1,NaN,NaN,3,4],因为1的下标对于0,默认转为10进制为1,2的下标对于为1,基数为2-32,所以返回NaN,3的下标对于2,而2进制中只有0和1,所以返回NaN,10的下标对于的是3,3进制转换10后为3^1*1+3^0*0=3……诸如此类转换。

什么时候不建议使用箭头函数?

1.需要用到this指向,arguments,prototype的时候。

2.需要作为构造函数来使用时。

虚拟Dom的优缺点:

 优点:

 1.保证性能下限

 2.无需直接操作dom

缺点:

dom初始渲染时,由于多了一层虚拟dom对比,会比innerHTML的插入慢。

 请求头header里面都包含哪些属性?

  1. Accept
  2. Accept-Encoding
  3. Accept-Language
  4. Connection:keep-alive
  5. Cookie
  6. Host
  7. Referer
  8. Sec-Fetch-Dest
  9. Sec-Fetch-Mode
  10. Sec-Fetch-Site
  11. User-Agent
  12. Content-Type
  13. :method
  14. :path

请求响应code状态码:

200:请求成功

204:请求成功了但是服务器没有返回数据

301:请求的资源已被永久的移动到新的url

400:客户端请求的语法错误,服务器无法理解。

401:用户的身份认证

403:服务器拒绝执行客户端的请求

404:地址错误

500:服务器内部错误,无法完成请求

501:服务器不支持请求的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值