首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带字符串的左移位数字

带字符串的左移位数字
EN

Stack Overflow用户
提问于 2016-01-20 11:27:47
回答 1查看 112关注 0票数 0
代码语言:javascript
复制
10000<<"5daz"

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

代码语言: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>
EN

回答 1

Stack Overflow用户

发布于 2016-01-20 12:00:39

Javascript通常会尝试将参数类型解析为其运算符,以便它们“有意义”。在本例中,它将String转换为Uint32,以便可以执行左移。当将String转换为Uint32时,它首先将其转换为NumberIf the number is NaN, then the UInt32 is 0 by the specification.

10000<<"5daz"10000<<0相同,即10000

有关更多阅读,请访问here in the specification

在其他操作中,NaN被区别对待,这可能是为什么<<操作符会让您感到惊讶的原因。例如,Number将参数视为加法,而不是Uint32。由于这个原因,10000 + "5daz" = NaN10000 << "5daz" = 10000

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34891052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档