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

JS中的基本数据类型

首先

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

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

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

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

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

var name = 'Bob'; 
var name = null;

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

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

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

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

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

number

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

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

  • 不同进制表示

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

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

s1 = 'hello';
s2 = "world";
s3 = String('hello');  // 得到的是基本类型 string
s4 = new String('hello');  // 用 new 创建的是 String 对象

console.log(typeof s1);  // expected output: "string"
console.log(typeof s2);  // expected output: "string"
console.log(typeof s3);  // expected output: "string"
console.log(typeof s4);  // expected output: "object"

如果想要输出引号

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

boolean
true 表示真,用 false 表示假

symbol

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注