一些被忽略的小知识之Nan、undefined、null

    要不是因为去面试,我才发现自己原来有那么的小知识点不知道,还有一些原理理解的不透彻,想来面试真的是检验自己学的是否扎实的不二途径,所以,多多总结才会变得更稳呐。

Nan

1,Nan表示not number,中文解释是“非数字的特殊值”;

2,Nan的数据类型是number(这是事实,我没有说错);

typeof NaN;  //number
console.log(NaN == NaN); //false

虽然结果是false很奇怪,也是要接受的:NaN和所有值都不相等,包括它自己(所以,创造出来这个关键字究竟有啥用途呢?!!!!)

3,在哪种情况下会出现NaN

var str = "i wanna a cat";
var str2int = parseInt(str);
console.log(str2int);//NaN
console.log(typeof str2int);//number

这时候的str2int的值是一个NaN,它的类型是number,即parseInt成功的将字符串转换成了数字,但是这个值无法用数字表示出来

4,如何判断一个变量是否是NaN

方法一:这个方法括号里面的东西都是要加上“”的

console.log(isNaN('i wanna a cat'));//true

如果传入数字,就会返回false了

console.log(isNaN('123')); // false

方法二:这个方法括号里的就是你想检测的对象,包括上标

console.log(Number.isNaN('hello'));  // false

undefined

遇到一道面试题:undefined 和not defined有什么区别

1,undefined是javascript中五个基本类型中的一个,undefined是表示系统级的、出乎意料的或类似错误的值的空缺;

2,在一下几种情况下会出现undefined:

  • 变量被声明,但是没有被赋值,这个时候使用这个变量就会报undefined
  • 一个不存在的对象空成员
  • 在变量提升(预解析)阶段,只声明未定义,默认值就是undefined
  • 在JS的严格模式下(”use strict”),没有明确的主体,this指的就是undefined
  • 函数定义没有返回值(return或者return后面什么也不带),默认的返回值就是undefined
  • 函数定义形参不传值,默认就是undefined
  • 函数定义形参不传值,默认就是undefined

3,not defined仅仅表示一个对象没有被定义就被使用了,这是一种系统异常

null

1,null是javascript的五个基本数据类型之一,表示“空的”,表示程序级的、正常的或在意料之中的值的空缺

typeof null; //object

2,null可以表示为一个空对象

3,你可以将一个对象赋值为null,表示这是一个空对象,就像一个占位符一样(一般不会手动将一个变量赋值为undefined,这样做感觉有点傻)

 

你可能感兴趣的:(Javascript)