繁体   English   中英

带字符串的左移数字

[英]Left shift number with string

10000<<"5daz"

我正在数字和字符串之间应用左移,结果是10000,如何在JavaScript中解释?

<!DOCTYPE html>
<html>
    <body>
        <h1>JavaScript Variables</h1>
        <p>In this example, x, y, and z are variables</p>
        <p id="demo"></p>

        <script>
            var x = 5;
            var y = 6;
            var z = x + y;
            var bvalue=true;
            document.getElementById("demo").innerHTML = 10000<<"5daz";
        </script>
    </body>
</html>

Javascript通常尝试解析其运算符的参数类型,以使它们“有意义”。 在这种情况下,它将String转换为Uint32以便可以执行左移。 String转换为Uint32 ,首先将其转换为Number 如果数字为NaN ,则根据规范UInt32为0。

10000<<"5daz"10000<<0等于10000

要了解更多信息,请参见规范

在其他操作中,对NaN的处理方式有所不同,这可能就是为什么这使您对<<运算符感到惊讶的原因。 例如,加法将参数视为Number ,而不是Uint32 因此, 10000 + "5daz" = NaN10000 << "5daz" = 10000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM