首页 > 试题广场 >

var a = parseInt([0,0,1,0,0].j

[单选题]
var a = parseInt([0,0,1,0,0].join('')+1) a的值为
  • 2
  • 101
  • 1001
  • NaN
var a = parseInt([0,0,1,0,0].join('')+1)
//join()方法将数组转为字符串,并用指定的分隔符进行分割
[0,0,1,0,0].join("") 后变成字符串'00100'
字符串'00100'+1 ,1是number,会将1转变为字符串后拼接
就变为 001001  parseInt后 变成 1001

JS的类型转换规则相当繁杂,主要是变化太多了。

在 JS 中类型转换只有三种情况,分别是:

  1. 转换为布尔值
  2. 转换为数字
  3. 转换为字符串

四则运算和==、条件运算都会隐式类型转换。

运算

但记住常见的就差不多了
加法运算 字符串 + 数字 将数字转为字符串 如111+'222'="111222"
非加法运算 字符串- x / 数字 将字符串转为数字 如'111'-11=100

==

  1. 首先会判断两者类型是否相同。相同的话就是比值大小了
  2. 类型不相同的话,那么就会进行类型转换
  3. 会先判断是否在对比 null 和 undefined,是的话就会返回 true
  4. 判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number
  5. 判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断
  6. 判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断
发表于 2021-12-18 23:32:00 回复(3)
var a = parseInt([0,0,1,0,0].join('')+1);
1)首先,  [0,0,1,0,0].join()        结果是    '00100'
2)  然后,   '00100'+1                 结果是    '001001'
3)  最后,   parseInt('001001')    结果是    1001

考点一:数组join()的用法
                1)    join() 方法不传参数的时候,将数组作为字符串返回(把数组的中括号变成'')。
                       例如:[1,2,3,4,5,6].join()    结果是    '1,2,3,4,5,6'
                2)    join() 方法传参数的时候,参数作为数组里每一项的连接符
                       例一:[1,2,3,4,5,6].join('')   结果是   '123456'          //连接符为空
                       例二:[1,2,3,4,5,6].join(' ')  结果是   '1 2 3 4 5 6'     //连接符是空格
                       例三:[1,2,3,4,5,6].join('-')  结果是   '1-2-3-4-5-6'    //连接符是-
                       例四:[1,2,3,4,5,6].join(',')  结果是   '1,2,3,4,5,6'    //连接符是逗号,(注意:此时和join()结果一样)

考点二:算术运算符+ - * % / 
               加法运算:如果有一边为字符串,那么+表示字符串连接
                                 如果两边都没有字符串,那么就是普通的加法运算,不是Number类型的会先隐式转换成数字计算。
               减,乘,除,取余:Number类型的会先隐式转换成数字计算。
               1)   String + Number                   例如:'a'+3 得 'a3'
               2) Boolean + Number               例如:false+3 得 3
               3)    Null + Number                     例如:null+3 得 3  (因为Number(null)为0)
               4)    undefined + Number           例如:undefined +3 得 NaN  (因为Number(undefined)为NaN)
               5)    Boolean + Null                    例如:true+ null 得 1
               6)    Boolean + undefined           例如:true + undefinde 得 NaN
               等等....

考点三:parseInt(String,radix)的用法
              parseInt()会先把传到括号里的参数隐式转换成String,然后再转成整数

              
发表于 2022-01-06 14:19:19 回复(0)
C join(“”)可以判断是不是空白字符,并将其舍弃。这里把0舍弃了。
编辑于 2017-02-09 13:58:30 回复(0)
选C,
[0,0,1,0,0].join(‘’)+1会变成001001,再 parseInt一下变成1001
发表于 2017-02-09 19:53:05 回复(0)
var a=parseInt([0,0,1,0,0].join("")+1);
① ([0,0,1,0,0].join("")  结果为 "00100"
②"00100"+1 结果为 "001001"【因为字符串加数字结果就是字符串拼接的结果】
③parseInt("001001") 结果为 1001 【在ECMAScript3中,会将0开头的解析为8进制。在ECMAScript5中,不允许以0开头的八进制,所以后面都会将0舍弃】
发表于 2022-06-14 11:30:51 回复(0)
console.log( [0,0,1,0,0].join('') )             // 00100
console.log( typeof [0,0,1,0,0].join('') )      // string

console.log( [0,0,1,0,0].join('') + 1 )             // 001001
console.log( typeof ([0,0,1,0,0].join('') + 1) )    // string
 
console.log( parseInt( [0,0,1,0,0].join('') + 1 ) )         // 1001
console.log( typeof parseInt([0,0,1,0,0].join('') + 1) )    // number


发表于 2022-04-19 21:29:55 回复(0)