本篇文章是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天

