有关 javascript 生僻问题

1. ++Math.PI
2. (0.1 + 0.2) + 0.3 == 0.1 + (0.2 + 0.3)
3. typeof NaN
4. typeof typeof undefined
5. a = {null:null}; typeof a.null;
6. a = “5″; b = “2″; c = a * b;
7. a = “5″; b = 2; c = a+++b;
8. isNaN(1/null)
9. (16).toString(16)
10.016 * 2
11.~null
12.”ab c”.match(/\b\w\b/)

 

 

 


我的解答:

 

 

1.系统 pi 改掉了 4.xxx
2.双精度不准确,比较 只能相减 小于极小值来比较
a-b < 1e-6

3.NaN type Number typeof 返回 String :"number"
4.同3 ,typeof 返回 String  type of "" : "string"
5.null 属于 Object 类型 ,typeof {}:"object"
6.* 对操作数类型转换 int 10
7.++ 优先级高于 + , 操作数转化为 int ,++ 返回 int: 7
8./ 转换操作数 int  null转换为 0  ,1/0 infinity

9.16进制 表示 16 :"10"

10.016 八进制  14 ,结果 十进制28

11.~ 转换操作数 int ,null -> 0 ~0取反 ,1111..11 ,-1的二进制表示

12\w 匹配一个单词  \b单词边界 ,match返回匹配数组 只能  ["c"]

 

 


关于 null 转化为 0 问题 :

 

在算术运算中,需要转化为整数时,null 会转换成 0 , true -> 1, false ->0

可见 extjs Ext.num


Utility method for validating that a value is numeric

 

num : function(v, defaultValue){
            v = Number(v === null || typeof v == 'boolean'? NaN : v);
            return isNaN(v)? defaultValue : v;
        }

 

将 null boolean 判断

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值