理一理 JavaScript 中的基本数据类型

首先

JavaScript 是一门“弱类型”语言,一个变量可以被重复赋值,每次都可以是不同的数据类型。所以当定义一个变量 x 时,前一秒它可能存放着数字 1 ,后一秒可能就被派去储存字符串 ‘hxhen’

既然如此,那 JavaScript 中有哪几种数据类型呢?

不妨来列举一下,它们是:

  • null
  • undefined
  • 数字(number)
  • 字符串(string)
  • 布尔(boolean)
  • symbol
  • 对象(object)
接下来逐个击破

null
先说说单纯一点的 Null,可以把它理解成 空,使用它来清空变量的值

1var name = 'Bob'
2var name = null;

undefined
字面义:未定义,声明但未赋值的变量就是 undefined

1var name;
2console.log(name);  // expected output: undefined

object
“万物皆为对象”,JavaScript 作为一门面向对象的语言,也是具有这一特征的

JavaScript 提供了多个内建对象,比如 String,Date,Array 等等。对象是带有 属性contribute 和方法method 的特殊数据类型。

  • 访问对象的属性
    1var name = 'Bob';
    2console.log(name.length);  // expected output: 3
  • 访问对象的方法
    1var name = 'Bob';
    2console.log(name.toUpperCase());  // expected output: BOB
  • 创建一个对象的实例
    1// 可以这样创建
    2student = new Object();
    3student.name = 'Bob';
    4student.age = 20;
    5console.log(student);  // expected output: {name: "Bob", age: 20}
    6console.log(typeof(student));  // expected output: object
    7
    8// 也可以以键值对的形式创建
    9student = {name'Bob'age20};
  • 对象构造器
     1function student(name, age)
    2
    {
    3  this.name = name;
    4  this.age = age;
    5}
    6
    7// 然后就可以通过构造器创建对象了
    8var stu1 = new student('Nicol'19);
    9console.log(stu1);  // expected output: student {name: "Nicol", age: 19}
    10console.log(typeof(stu1));  // expected output: object
  • 可以往对象中添加方法
     1function student(name, age)
    2
    {
    3  this.name = name;
    4  this.age = age;
    5
    6  this.whichLanguage = whichLanguage;
    7  function whichLanguage(lan)
    8  
    {
    9      console.log(lan);
    10  }
    11}
    12
    13var stu1 = new student('Nicol'19);
    14stu1.whichLanguage('Chinese');  // expected output: Chinese

number

  • 数字可以是整数,小数以及科学计数法表示
    1var i = 10;
    2var f = 0.12;
    3var e1 = 33e5;    // 3300000
    4var e2 = 33e-5;   // 0.00033
    5console.log(typeof(i));  // expected output: number
  • 在 JavaScript 中,所有数字都为 64 位。像其他编程语言里面的什么短整型、长整型、双精度浮点型什么的都可以先抛开了

  • 精度上,普通整数最多 15 位,小数最多 17 位。和其他程序语言一样,浮点运算是不准确的

  • 不同进制表示

    1var y=0377;  // 八进制
    2var z=0xFF;  // 十六进制

string
可以用单引号也可以用双引号

1s1 = 'hello';
2s2 = "world";
3s3 = String('hello');  // 得到的是基本类型 string
4s4 = new String('hello');  // 用 new 创建的是 String 对象
5
6console.log(typeof s1);  // expected output: "string"
7console.log(typeof s2);  // expected output: "string"
8console.log(typeof s3);  // expected output: "string"
9console.log(typeof s4);  // expected output: "object"

如果想要输出引号

1s1 = '"hello"';
2console.log(s1);  // expected output: "hello"
3s2 = "'hello'";
4console.log(s2);  // expected output: 'hello'

boolean
true 表示真,用 false 表示假

symbol

字面义为 标记,代表独一无二的值

(排版还很多要改进的,移动端体验更佳)

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注