本篇文章是js基础练习题第七天的答案及解析部分,纯题目部分请移步js基础练习题 第7天
正文
1.分析以下代码(其中b
未定义):
1 | console.log(typeof(a)); |
第2行的运行结果为__________,
第3行的运行结果为__________,
第4行的运行结果为__________。
答案:undefined
、undefined
、undefined
、报错(ReferenceError
)
本题考查的是变量提升和类型检测,在我的文章中该类型的题已经多次出现过。
2.请简述
undefined
和null
的区别以及用途。答案:undefined
表示未对声明的变量进行初始化,通常不需要进行显式设置,常用于基本数据类型的设置;null
表示一个空对象指针,常用来在将来保存对象,undefined
值是派生自null
值的。
3.写出下列代码运行的结果。
Boolean("")
= __________,Boolean({})
= __________,Boolean([])
= __________,Boolean(5/0)
= __________,Boolean(0/0)
= __________,Boolean(new Boolean(false))
= __________。答案:false、true、true、true、false、true
Boolean( )的转换规则:
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | 空字符串 |
Number | 任何非零数字值 | 0和NaN |
Object | 任何对象 | null |
Undefined | \ | undefined |
4.写出下列代码运行的结果。
isNaN("10")
的返回值为__________,Number.isNaN("10")
的返回值为__________,isNaN("blue")
的返回值为__________,Number.isNaN("blue")
的返回值为__________。答案:false
、false
、true
、false
isNaN( )
会将参数转换为数字,若能转换成功,则返回false
,否则返回true
;Number.isNaN( )
只判断数字值是否为NaN
,对于其他类型的值,一律返回false
。
5.写出下列代码运行的结果。
Number("abc")
的返回值__________,Number("")
的返回值为__________,Number(undefined)
的返回值为__________,Number(null)
的返回值为__________,parseInt("")
的返回值为__________,parseInt("23a",7)
的返回值为__________,parseFloat("0xa")
的返回值为__________,parseFloat("012")
的返回值为__________。答案:NaN、0、NaN、0、NaN、17、0、12
(1)Number( )转换规则:
原始值 | 转换结果 | 原始值 | 转换结果 |
---|---|---|---|
true | 1 | “number” | number |
false | 0 | 空字符串 | 0 |
null | 0 | “0number” | number |
undefined | NaN | 其他 | NaN |
(2)parseInt( )转换规则:
原始值 | 转换结果 | 原始值 | 转换结果 |
---|---|---|---|
true/false | NaN | “num str” | num |
null/undefined | NaN | “number” | number |
空字符串 | NaN | 带进制的字符串 | 根据相应进制转换 |
parseInt( )可以接受第2参数,表示转换时使用的基数。
(3)parseFloat( )与parseInt( )类似,但有一点重要的区别,即parseFloat( )会忽略前导的0,即16进制数和8进制数始终都会返回0。
说明
- 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
答案中,若有错误和需完善的地方,可在下方留言反馈哈~~
查看纯习题版,请点击js基础练习题 第7天