js中parseInt()的用法和&返回的结果

一.parseInt()的基本用法如下(转自菜鸟教程):

 parseInt() 函数可解析一个字符串,并返回一个整数。

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

当忽略参数 radix , JavaScript 默认数字的基数如下:

如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
语法
parseInt(string, radix)

参数  描述
string  必需。要被解析的字符串。
radix   可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
需要补充说明的是:
  1. parseInt()只返回能解析的部分,(那么要转换为2进制的时候,只能有01,我还傻傻的想parseInt(5,2)==101呢)
parseInt('123abc')   // 123
parseInt('123abc',16)  // 1194684  指定16进制,abc分别表示11 12 13
  1. 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。
parseInt('711111',2)  //  NAN
parseInt('11711',2)   //  3

二.&的用法

在js里,一个&表示运算符按位与,就是把两个二进制数按每一位比较,两个都为1则为1,否则为0(也类似与且,都真才为真)
比如 1111&0110 = 0110。(从第二个1第一次相等,第二个1第二次相等,后面再无相等的,返回结果则为0110
如果不是二进制数比较,需要先把这两个数转换为二进制,比如

15&6 = 1111&0110 = 0110 = 6

你可能感兴趣的:(js中parseInt()的用法和&返回的结果)