JavaScript 3.4数据类型

ECMAScript中有5种简单数据类型(也称为基本数据类型):
Undefined、Null、Boolean、Number和String。
还有1种复杂数据类型——Object, Object本质上是由一组无序的名值对组成的.
3.4.1 (typeof) 操作符,来检测给定变量的数据类型
var age = 18; // number
    age1 = '18'; // string
    age2 = true; // boolean
    age5 = null; // object
    var num; // undefinded

    age6 = test; // 这个值是函数 返回的类型是function
    console.log(typeof age6);

    function test() { // 有名函数
/**
     * "undefined"——如果这个值未定义;
     * ❏ "boolean"——如果这个值是布尔值;
     * ❏ "string"——如果这个值是字符串;
     * ❏ "number"——如果这个值是数值;
     * ❏ "object"——如果这个值是对象或null;
     * ❏ "function"——如果这个值是函数。
     * 
    */

    }
3.4.2 undefined类型
Undefined类型只有一个值,即特殊的undefined。
在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如
var message; // 声明了未赋值,返回的值是undefinded;
    console.log(message == undefinded) // true
    // 上面这个例子只声明了变量message,但未对其进行初始化。
    // 比较这个变量与undefined字面量,结果表明它们是相等的

    console.log(typeof hhh); // 没有被声明但返回的值也是undefinded
    console.log(hhh); // 没有声明的变量一调用会直接报错,声明了没有被赋值的变量一调用会返回undefinded
    var kij;
    console.log(kij); // 返回undefinded;

3.4.3 Null类型
Null类型是第二个只有一个值的数据类型,这个特殊的值是null
从逻辑角度来看,null值表示一个空对象指针,
而这也正是使用typeof操作符检测null值时会返回"object"的原因
var car = null;
    console.log(typeof car); // object

    /**
     * 如果定义的变量准备在将来用于保存对象,
     * 那么最好将该变量初始化为null而不是其他值。
     * 这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用,
     * 如下面的例子所示
    */
    if (car !== null) {
      car = car + 1
      console.log(car)
    } // 如果可以执行就说明保存了一个对象的引用,否则没有。


3.4.4 Boolean类型
Boolean类型是ECMAScript中使用得最多的一种类型,
该类型只有两个字面值:true和false。
这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0
// 虽然Boolean类型的字面值只有两个,
//但ECMAScript中所有类型的值都有与这两个Boolean值等价的值。
// 要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean(),
// 如下例所示:
    var xue = 'Hello world';
    var xueAsBoolean = Boolean(xue);
    console.log(xueAsBoolean); // 会返回true;
    /**
     * 在这个例子中,字符串message被转换成了一个Boolean值,
     * 该值被保存在messageAsBoolean变量中。
     * 可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。
     * 至于返回的这个值是true还是false,
     * 取决于要转换值的数据类型及其实际值,
    */
    var xiao = 0; // false;
    xiao = '0'; // true;
    xiao = 123; // true;
    xiao = NaN; // false;
    xiao = ''; // false;
    xiao = null; // false;
    xiao = true; // true;
    xiao = false; // false;
    if (xiao) {
      console.log(true);
    } else {
      console.log(false);
    }
  // 这些转换规则对理解流控制语句(如if语句)自动执行相应的Boolean转换非常重要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值