首页 > 试题广场 >

以下哪些表达式的结果为true()

[不定项选择题]
以下哪些表达式的结果为true()
  • undefined == null
  • isNaN("100")
  • parseInt("1a") === 1
  • [] instanceof Array
// 1. isNaN()函数用来判断一个数是否是NaN;
            // 只有一个值是NaN或者能被转换为NaN的时候才返回true 
            console.log(isNaN('e'));//true,因为e可以被转换为NaN 
            console.log(isNaN('11'));//false,因为字符串可以被转换为数字,不能被转为NaN 
            console.log(isNaN(null));//false,因为null可以被转换为0,不能被转为NaN 
            console.log(isNaN(NaN));// true,NaN返回true
            
            // 2. parseInt(string,raix)函数有两个参数
            // 2.1 注意:string字符串只会被解析从第一个字符开始直到不是数字的字符部分
            console.log(parseInt('223'));//223
            // 2.2 当字符串中间存在非数字,那么就只解析前面是数字的部分字符
            console.log(parseInt('22e3'));//22
            // 2.3 如果字符串中第一个字符就不是数字,那么返回NaN 
            console.log(parseInt('e21'));//NaN
            
            // 对于parseInt()函数还有一个易考点,就是利用数组的下标,还记得parseInt()函数的第二个参数吗?
            // 2.4 parseInt()函数的第二个参数指的就是进制,这个参数小于2或者大于36的时候,都会返回NaN 
            console.log(parseInt(1,1));//NaN ,因为第二个参数是1表示1进制<2,所以错误
            console.log(parseInt(1,2));//1,因为表示二进制 =2,在范围内
            // 2.5 我们一般都是省略这个参数的,这个时候就是默认为10进制
            console.log(parseInt(99));//99
            // 2.6 我们第二个参数使用0的时候也是使用十进制
            console.log(parseInt(99,0));//99
            // 2.7 如果第一个参数前缀使用0x/0X则表示使用16进制
            console.log(parseInt(0x99));//153=16*9+9
            console.log(parseInt(0x99,10));//如果第一个参数使用了0x表示十六进制,那么第二个参数设置了值也无效
            
            // 2.8 看一个实例,对于数组
            var arr=[1,2,3,2,5];
            console.log(arr.map(parseInt));//[1, NaN, NaN, 2, NaN]
            // arr.map方法就是对于数组arr里面的每一项都去使用方法里面的函数,最后返回新数组
            // 因为map方***有索引,所以实际上就是 
            parseInt(1,0);//1,因为0表示十进制
            parseInt(2,1);//1进制<2,所以错啦!
            parseInt(3,2);// 2进制,但是3不在0——2范围内(3应该改为11),所以不符合2进制要求
            parseInt(2,3);//符合,因为三进制是0-3,而2在范围内
            parseInt(5,4);//4进制不包括5,所以NaN
发表于 2019-09-17 13:47:56 回复(8)
1、如果都是字母, 返回:NaN
parseInt("abc", 10)  //返回 NaN
2、如果都是数字,则返回整数
parseInt("123", 10)   //返回 123
3、如果字母和数字都存在
(1)、以数字开头,则取截止到第一个字母出现之前的所有数字进行转换
parseInt("12x2bc", 10)   // 返回:12
(2)、如果参数“string”,以字母开头,直接返回NaN (10进制中字母不是一个有效的的表示)
parseInt("df2bc", 10)  //返回 NaN

发表于 2020-09-20 19:16:30 回复(0)
1和l傻傻分不清楚
发表于 2020-09-11 11:15:19 回复(1)
ACD;
A 不严格模式下是==的。
C parseInt是执行数值知道它后面不是数值。所以一遇到a就停下来。 只输出了1。 数值和数值之间是===。
D []是属于Array 
综上 ACD。
发表于 2020-03-24 03:28:54 回复(0)
考点一: isNaN()的隐式转换
isNaN(item) 的时候会先将item进行 Number(item) 的隐式转换,然后再isNaN(item)

考点二:parseInt(string,raix)
1 )注意:string字符串只会被解析从第一个字符开始直到不是数字的字符部分
       console.log(parseInt('223'));//223
2) 当字符串中间存在非数字,那么就只解析前面是数字的部分字符
       console.log(parseInt('22e3'));//22
3) 如果字符串中第一个字符就不是数字,那么返回NaN 
       console.log(parseInt('e21'));//NaN
4) 第二个参数raix表示进制数,如果值是10就表示转换成10进制

考点三:判断数据类型的常见方法(各个的缺点是啥)
1)typeOf  ([], null, Object判断结果都是object)
2)instanceof 
3)Object.prototype.toString.call()
编辑于 2022-01-04 14:58:36 回复(0)
这里额外说下为啥
if([]) {
    console.log(true) // 这为true
}
但是为啥[] == false 也是相等的呢?
因为任意值与布尔值比较,都会将两边的值转化为Number
所以:[]==false ===>  Number([]) == Number(false)
但是在if([])的时候是先转换成Boolean类型的,而Boolean([]) 为true
发表于 2021-04-12 20:57:25 回复(0)
现在没什么人还在用==了吧,都在用===了,还在研究==的规则没什么意义!
发表于 2020-02-26 18:18:42 回复(4)
NaN为 Not a Number .是数值和能转为数值才会返回false 括号里面“100”是字符串,能转为数值
发表于 2021-06-14 11:39:52 回复(0)
2. parseInt(string,raix)函数有两个参数             // 2.1 注意:string字符串只会被解析从第一个字符开始直到不是数字的字符部分             console.log(parseInt('223'));//223             // 2.2 当字符串中间存在非数字,那么就只解析前面是数字的部分字符             console.log(parseInt('22e3'));//22
发表于 2021-03-08 19:30:54 回复(0)
我把1a当成la了  枯了
发表于 2020-03-15 18:05:46 回复(0)
parseInt 和 parseFloat 
它们可以从字符串中“读取”数字,直到无法读取为止。如果发生 error,则返回收集到的数字。函数 parseInt 返回一个整数,而 parseFloat 返回一个浮点数:
发表于 2022-09-03 17:34:06 回复(0)
undefined == null 属于设计的糟粕,没必要深究
发表于 2021-12-25 17:57:04 回复(0)
isNaN("100")==isNaN(Number("100"))
发表于 2021-07-02 16:34:19 回复(0)
isNaN 的判断逻辑是先调用Number判断参数,所以如果传入的是字符串的数字,number之后就变成了真的数字,此时isNaN返回值就是false,反之则是true。
发表于 2021-05-18 19:56:36 回复(0)
如果参数值在转换之后为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
发表于 2021-03-04 14:05:05 回复(0)
如果isnan第一个参数不是数值类型,且可以转换为数值,会转换成数值类型
编辑于 2021-02-05 15:14:45 回复(0)
d不对好不好,不同框架中array的构造函数不一样可能
发表于 2020-11-05 22:36:47 回复(0)
D答案是不严谨的,如果在不同环境下,D会返回false
发表于 2020-07-15 10:59:45 回复(0)
undefined 与 null 全等下不等 typeof undefined 返回 undefined typeof null 返回 object
发表于 2020-07-01 10:05:42 回复(0)
如果isnan函数的参数不是一个数,那么就会转换为数值内型
发表于 2020-04-20 21:23:34 回复(0)