专项练习26

目录

一、选择题

    1、假设HTML有一个按钮id为btn,经过以下操作最终会变成什么颜色?

    2、下列表达式中,结果为NaN的是()

    3、你想通过 XMLHttpRequest更新以下元素,即使用div显示状态,下面哪段代码是正确的?

二、编程题

    1、以boolean的形式返回字符串首参中是否包含第二个参数


一、选择题

1、假设HTML有一个按钮id为btn,经过以下操作最终会变成什么颜色?
document.getElementById('btn').style = 'background: blue';
document.getElementById('btn').style = 'background: red';
Promise.resolve().then(() => {
document.getElementById('btn').style = 'background: black';
})

A、由blue变成red再变成black

B、颜色不会发生改变

C、red

D、black

正确答案:D        你的答案:C

解析:

(1)首先明确 UI 渲染是宏任务,而按照事件循环的模型,先执行的是整体的主干代码,这期间style 频繁变化但是还没有被渲染所以不会有颜色的变化,同时因为有个微任务也就是 promise 回调函数,最终改变了 style 为 black,之后执行的 UI 渲染,也就是最后的颜色

(2)JS会阻塞DOM渲染,推荐文章

原来 CSS 与 JS 是这样阻塞 DOM 解析和渲染的 - 掘金


2、下列表达式中,结果为NaN的是()

A、123 + null

B、123 / 0

C、123 + '1';

D、123 + undefined;

正确答案:D        你的答案:B

解析:

(1)选项

A选项:对于“+”运算,如果一端为Number类型,另一端为原始数据类型,则另一端会被转为Number类型,再相加,null会被转为0,结果为123

B选项:123/0结果为Infinity

C选项:对于“+”运算,如果一端为字符串,则另一端会被转为字符串进行字符串之间的连接,因此结果为1231

D选项:对于“+”运算,undefined会被转为NaN,结果也为NaN

<script>
    console.log(123 + null);//123
    console.log(123 / 0);//Infinity
    console.log(123 + '1');//1231
    console.log(123 + undefined);//NaN
</script>

(2)JavaScript 中,允许 0 作为除数,只有 0/0 结果是 NaN,其他数值 /0 结果都是 Infinity

<script>
    console.log(0/0);//NaN
    console.log(1/0);//Infinity
    console.log('1'/0);//Infinity
    console.log('a'/0);//NaN
</script>

3、你想通过 XMLHttpRequest更新以下元素,即使用div显示状态,下面哪段代码是正确的?
<div id="statusCode"></div>

A、var myDiv = document.getElementById ("statusCode"); myDiv.innerHTML = req.statusCode;

B、var myDiv = document.getElementById ("statusCode"); myDiv.innerHTML = req.status;

C、var myDiv = document.getElementById ("statusCode"); myDiv.setStatus (req.statusCode);

D、var myDiv = document.getElementById ("statusCode"); myDiv.status = req.status;

正确答案:B

解析:

(1)status与statusText

status属性返回状态码,为一个数字

statusText属性返回状态码以及描述,字符串

(2)XMLHttpRequest对象的readyState与status的几种状态码表示的意思:

readyState有五种状态:

  • 0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法;
  • 1 (载入):已经调用open() 方法,但尚未发送请求;
  • 2 (载入完成): 请求已经发送完成;
  • 3 (交互):可以接收到部分响应数据;
  • 4 (完成):已经接收到了全部数据,并且连接已经关闭

status实际是一种辅状态判断,只是status更多是服务器方的状态判断,常用状态如下:

  • 1xx——信息类,表示收到Web浏览器请求,正在进一步的处理中。如,100:客户必须继续发出请求;101:客户要求服务器根据请求转换HTTP协议版本
  • 2xx——成功,表示用户请求被正确接收,理解和处理。例如,200:OK;201:提示知道新文件的URL
  • 3xx——重定向,表示请求没有成功,客户必须采取进一步的动作。如,300:请求的资源可在多处得到;301:删除请求数据
  • 4xx——客户端错误,表示客户端提交的请求有错误。如,404:NOT Found,意味着请求中所引用的文档不存在。
  • 5xx——服务器错误,表示服务器不能完成对请求的处理。如,500,服务器产生内部错误

二、编程题

1、以boolean的形式返回字符串首参中是否包含第二个参数

解析:

(1)search()方法

<script>
    let string = '24516'
    let value = 3
    function _search(string, value) {
        return string.search(value) === -1 ? false : true
    }
    console.log(_search(string, value));
</script>

(2)indexOf()方法

<script>
    let string = '24516'
    let value = 3
    function _search(string, value) {
        return string.indexOf(value) === -1 ? false : true
    }
    console.log(_search(string, value));
</script>

(3)for()循环

<script>
    let string = '24516'
    let value = 3
    function _search(string, value) {
        let arr = [...string]
        for(let i of arr){
            if(i == value){
                return true
            }
        }
        return false
    }
    console.log(_search(string, value));
</script>

猜你喜欢

转载自blog.csdn.net/qq_51478745/article/details/131675600
今日推荐