V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
lxy
V2EX  ›  JavaScript

我感觉 js 的坑特别多

  •  
  •   lxy · 2016-02-18 17:45:17 +08:00 · 2074 次点击
    这是一个创建于 3193 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ar = [NaN];
    for (var i in ar) { console.log(i);};
    // 输出 0 ! 至今不知为何。

    parseInt(0x9, 16);
    // 9
    parseInt(0x10, 16)
    // 22 <- insteresting!
    Arrowing
        1
    Arrowing  
       2016-02-18 17:52:29 +08:00
    1 、 for 语句将 ar 当成 object 解析,因为数组本身就是一个 object ,数组的索引值与 object 的 key 对应。这里你可以这样理解 var ar = {0: NaN};for (var i in ar) { console.log(i);};

    2 、 http://www.w3school.com.cn/jsref/jsref_parseInt.asp

    parseInt(string, radix)

    参数 描述
    string 必需。要被解析的字符串。
    radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

    如果省略该参数或其值为 0 ,则数字将以 10 为基础来解析。如果它以 “ 0x ” 或 “ 0X ” 开头,将以 16 为基数。

    如果该参数小于 2 或者大于 36 ,则 parseInt() 将返回 NaN 。
    Arrowing
        2
    Arrowing  
       2016-02-18 17:55:55 +08:00
    PS: parseInt(0x10, 16) 等于 parseInt(16, 16)
    em2046
        3
    em2046  
       2016-02-18 17:59:37 +08:00
    @Arrowing 哈哈
    vghdjgh
        4
    vghdjgh  
       2016-02-18 17:59:56 +08:00
    object -> for...in
    array -> for...of
    Troevil
        5
    Troevil  
       2016-02-18 18:08:16 +08:00
    @Arrowing

    parseInt(0x10, 16) = 22
    parseInt('0x10', 16) = 16
    何解
    YuJianrong
        6
    YuJianrong  
       2016-02-18 18:16:46 +08:00
    推荐个文档,特别清楚。里面查一下就知道为什么是那个结果了。
    http://www.ecma-international.org/publications/standards/Ecma-262.htm
    Arrowing
        7
    Arrowing  
       2016-02-18 18:38:44 +08:00   ❤️ 1
    @Troevil

    parseInt(0x10, 16) = parseInt(0x10.toString(), 16) = parseInt('16', 16)
    Troevil
        8
    Troevil  
       2016-02-18 19:02:10 +08:00
    @Arrowing ... 晕了,原来如此..
    SoloCompany
        9
    SoloCompany  
       2016-02-18 21:01:47 +08:00
    也真是佩服柯南的耐心
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:54 · PVG 09:54 · LAX 17:54 · JFK 20:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.