JavaScript: null、 undefined、 ' ' 、 之间的区别及其判断之 undefined ;

314 阅读2分钟

JavaScript 的基本数据类型:undefined、Number、Boolean、Null、 Array、String、Symbol(ES6)

JavaScript 中的null、 undefined、 '' 的定义: undefined、null皆为全局对象上的一个属性。

  1. undefined 是javaScript中的基本数据类型之一,也是原始值数据。

    什么情况下会出现undefined? 1. 已经声明但未被初始化的变量,其默认被赋值为undefined; 2. 未被声明的变量使用 typeof 判断数据类型时返回undefined; 3. 没有明确的返回值时为undefined; 4. viod返回undefined;

  2. 关于undefined在javaScript类型转换的结果:

    在javaScript中undefined的类型转换是一件非常让人头疼的事情,需具体情况具体分析。

    // 1. undefined是否为 false ???
    // 如我们在控制台输入以下:
    undefined == falseundefined == true// 他们的结果都是会被定义为false。
    // 所以可以理解为,undefined既不为true,也不为false;
    // 2. 在JavaScript中隐式转换后是否与null相等 ???
    // 如我们在控制台输入以下:
    undefined == null; // 其结果为true;
    // 这就说明,undefined在javaScript的隐式转换中,undefined 与 null是相等的;
    
    *** 这就引申出一个在JavaScript中一个容易判断出错的逻辑运算:
    如:
    
```js
    let exp;
    if(exp == undefined) {
        alert('exp为undefined'); // 根据 2 可以判断出,如果exp为null,也将进入判断中。(除非使用typeof)
    };


```js
    // 3. undefined 取反后是否为true ???
    // 如我们在控制台输入以下:
    !undefined == true; // true
    !undefined === true; // true
    // 这就说明,通过!符转换后,是为true;
    // 4. undefined 是否为 0 ???
    // 如我们在控制台输入以下:
    undefined == 0; // false
    我们会发现其是不为0的。
    // 5. undefined是否可以转换为数字?
    Number(undefined); // NaN
    parseInt(undefined); // NaN
    parseFloat(undefined); // NaN
    // 可以看出undefined转换为数字的话皆为 NaN。
    // 6. undefined是否可转换为字符串???
    String(undefined) // 'undefined';
    // 注意:undefined 转换为字符串是没有toSring方法的;