基本概念之数据类型及其检测方法(三)

一、数据类型及其检测方法

5种基本数据类型:Undefined, Null, Boolean, Number, String

Undefined
  • 只有一个值:undefined
  • 使用 var, let 声明但未对其初始化时,其值为 undefined
Null
  • 只有一个值:null,表示一个空对象指针
  • 定义用来保存对象的变量,初始化推荐设为 null
Boolean
  • 只有两个值:true, false
  • 流控制语句会自动进行布尔值转换
Number
  • 包括整数和浮点数

    let intNum = 1;
    
    let floatNum1 = 1.1;
    let floatNum2 = 0.1;
    let floatNum3 = .1; //有效但无推荐
    // 保存浮点数所需内存空间是整数的两倍,若浮点数小数点后都是0,则会当作整数来保存
    let floatNum4 = 1.;
    let floatNum5 = 1.0;
    
    // 用科学计数法表示较大或较小的数
    let floatNum6 = 1e7;
    let floatNum7 = 1e-7; // 小数点后带有6个0以上默认以科学计数法显示
    let floatNum8 = 1e-6;
    
  • 整数字面量格式:十进制、八进制、十六进制

    // 八进制,以"0o"开头,后接0-7的数字
    let octalNum1 = 0o70;
    // 十六进制,以"0x"开头,后接0-9、A(a)-F(f)
    let hexNum1 = 0xA;
    let hexNum2 = 0x1f;
    
  • 进行算术运算时,其他进制都会先转化为十进制

  • 极值:Number.MIN_VALUE, Number.MAX_VALUE

  • isFinite(number) 判断是否有穷

    console.log(isFinite(res)); // false
    
  • isNaN(number) 判断是否为 NaN

    • NaN 是一个特殊的数值,本来要返回数值的操作数未返回数值时返回 NaN(避免抛出错误)
    • NaN 涉及的任何操作都返回 NaN;NaN 不与任何值相等,包括它本身
    let nanNum = 1 * "a";
    console.log(nanNum, nanNum === nanNum, isNaN(nanNum)); // NaN, false, true
    
String
  • 用于表示零或多个16位 Unicode 字符组成的字符序列,由""或''包括
  • 字符串不可变,重新赋值是先销毁原字符串然后用另一个新值字符串填充该变量
  • 转义序列:\n(换行), \t(制表), \b(退格), \r(回车), \f(进纸), \(斜杠), '(单引号), \"(双引号), \xnn(以16进制代码 nn 表示的字符), \unnnn(以16进制代码 nn 表示的 Unicode 字符)

1种复杂数据类型:Object(由一组无序键值对组成)

常用对象类型:Array, Function, Date, Math, Regexp

Object
  • 一组数据和功能的集合
  • 通过 new 操作符后跟要创建的对象类型名称来创建
  • Object 类型是所有它的实例的基础,实例拥有 Object 类型中的所有属性和方法

数据类型检测:基本数据类型用 typeof(),复杂数据类型用 instanceof()

const undef = undefined;
const nul = null;
const bool = false;
const num = 1;
const str = "hello";
const obj = {};
const arr = [];
const date = new Date();
const reg = new RegExp(`.`);

console.log(typeof undef); // undefined
console.log(typeof nul); // null 是一个空对象指针,所以返回 object
console.log(typeof bool); // boolean
console.log(typeof num); // number
console.log(typeof str); // string

console.log(typeof arr); // object, typeof 对所有复杂类型都返回 object
console.log(obj instanceof Object); // true
console.log(arr instanceof Array); // true
console.log(date instanceof Date); // true
console.log(reg instanceof RegExp); // true
上一篇:SQL Server 批量导入 bulk insert


下一篇:Python logging模块无法正常输出日志