jq应用总结(二)

(一)问题提出

这次说说进制转换问题

因为jq是弱语言类型,所以你会发现,他会自动转换进制,如当出现以0开头的数据时,它就会出现自动八进制转十进制

例:01111(八进制)   ->    585(十进制)

情景分析:我有这么一个函数 数据是数据库中取得的值01111

代码中呈现按道理来说是:getValue(01111);

但是事实是 getValue(585);

我们发现他直接将01111转换为相对应的十进制585

这样我们的bug就出来了所以,针对这样的现象我来说下个人的解决办法

(二)问题解决


			function getValue(stationids){
					stationid ='0' + stationids.toString(8);
	 			}

解释一下 toString()可以转化你的进制后面参数可以是2  8  10 16 就是说可以将10进制转换为八进制

然后利用jq弱语言的特点 使用字符串拼接就可以的到我们想要的数字结果了

(三)问题扩展(一下纯属复制粘贴,给自己备忘)

1.各种转进制

//10进制转为16进制
(10).toString(16) // =>"a"
//8进制转为16进制
(012).toString(16) // =>"a"
//16进制转为10进制
(0x16).toString(10) // =>"22"
//16进制转为8进制
(0x16).toString(8) // =>"26"
//10进制转为2进制 //=>
(1111).toString(2) // => "10001010111"
//8进制转为2进制 //=>
(01111).toString(2) //=>"1001001001"
//16进制转为2进制 //=>
(0x16).toString(2) // => "10110"

2.转十进制


//2进制到10进制;
parseInt(10,2) //=>2
//2进制到10进制;
parseInt(100,2) //=>4
//16进制到10进制
parseInt(12, 16) //=>18
//8进制到10进制
parseInt(12,8); //=>10




你可能感兴趣的:(jquery那些事)