面试题:在javascript中,1与Number(1)有什么区别
高洛峰
高洛峰 2016-11-22 09:09:26
0
5
4410

类似的问题还有'a'与String('a')等,求解释

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all (5)
三叔

从原型角度考虑呢,1.__proto__会报错,Number(1).__proto__不会报错

    三叔

    Number不加new调用是转换函数,如果是Number实例则直接返回,否则转换成等价的Number表示形式。

      三叔

      我这样理解的。
      1 是常量;
      Number(1)是 调用Number(1)的返回值。

        三叔

        在控制台打1 === Number(1) 也是true
        然后和同事讨论了一下, 目前看来唯一的区别就是
        var a = 1 是一个常量, 而Number(1) 是一个函数,
        当1 === Number(1) 做判断的时候也是拿Number的执行结果进行对比,
        所以这就是根本的区别

          三叔

          当Number被调用时,如果有参数,就会对参数执行toNumber方法
          toNumber方法被调用时,如果参数是数字,直接返回参数(不经过转换).
          所以如果Number被调用时参数是数字,其实相当于

          function Number(arg){ return arg }


            Latest Downloads
            More>
            Web Effects
            Website Source Code
            Website Materials
            Front End Template
            About us Disclaimer Sitemap
            php.cn:Public welfare online PHP training,Help PHP learners grow quickly!