文章目录
1.**面试题:null
和undefined
的区别? **
null
和undefined
都是原生JS
中基础类型的数据,语法上都用于表示无效数据
null
一般表示空值,更多的时候和对象的描述有关;转换成整数为0;null
是语法中的一个关键词
undefined
一般表示未定义/未声明值,通常一个声明了但是没有赋值的变量会自动赋值undefined
,和基础类型的数据表示相关;转换成整数为NaN
;undefined
不是语法中的关键词
项目中使用这两个数据时,如果我们希望一个变量中可能要存储对象,在存储对象之前可以赋值null
;如果希望一个变量中可能存储基础数据,可以不赋值默认就是undefined
我们使用undefined
时需要注意,这不是一个关键词,所以尽量不要使用undefined
给变量直接赋值,很容易出现BUG
,如果非要给一个变量显示赋值undefiend
建议使用下面的语法:
let _username; // 推荐,默认undefined
let _username = undefined; // 不推荐,存在BUG
let _username = void 0; // 赋值一个表达式,表达式返回undefined
2.面试题:请描述下面的代码输出结果是什么? 考察parseInt
const result = parseInt('111', 2)
console.log("result:", result)
题目分析:
parseInt()
函数:主要用于类型转换,将其他类型数据转换成整数- 最常见:将字符串的数值,转换成整数数值
- 出现了第二个参数:2,将需要转换的数据当成指定的进制进行转换
parseInt("12") => 12
parseInt("200px") => 200
parseInt("$200.00") => NaN
parseInt("500X200") => 500
结论分析:
# 将'111'按照2进制的方式进行处理,转化得到10进制数据
const result = parseInt('111', 2) // 7
# 0 1 10 11 100 101 110