JavaScript

JavaScript数据类型简介

下文笔者讲述JavaScript数据类型简介说明,如下所示

数据类型的功能

数据类型:
    用于指定程序中存储和操作值的类型
	不同数据类型中可存储不同的数据类型
	如:
	  文本、数值、图像等

注意事项:
    JavaScript作为一种动态语言
	定义变量时可不指定数据类型,运行时会自动确认数据类型
var a;  //a为Undefined
a = "https://www.linux28.com/"; //a为String 类型
a = 123;  //a为Number类型

JavaScript数据类型分类

基本数据类型(值类型):
    字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol

引用数据类型:
    对象(Object)、数组(Array)、函数(Function)

注意事项:
   Symbol是ECMAScript6中引入的一种新的数据类型
     指:
	   独一无二的值

如何判断数据类型

JavaScript中检测数据类型,此时我们想到了一个操作符
 那就是typeof操作符

typeof操作符简介:
    typeof操作符的功能用于返回变量的数据类型
typeof操作符语法:
    typeof x;   //返回变量x数据类型
    typeof(x);  //返回变量x数据类型

JS基本数据类型

String 类型

字符串(String)类型:
  可使用单引号''或双引号""包含
 如:
   '888'、"linux28.com"
   此时即设置了一个变量的值为单引号或双引号中的值 
字符串赋值注意事项:
    当字符串中包含引号(如括起来的引号相同的引号)
	 此时需借助“反斜杠\来转义字符串中的引号”

例:
  var str = "Let's love linux28.";  // 双引号中包含单引号
var str = '我爱 "Java" 你呢?';    // 单引号中包含双引号
var str = '爱\'linux28.com.';        // 使用反斜杠转义字符串中的单引号

Number 类型

数值(Number)类型用来定义数值
   JavaScript中不区分整数和小数(浮点数)
   统一使用Number类型表示 
例:
var num1 = 888;     // 整数
var num2 = 8.23;    // 浮点数
Number定义数值注意事项:
   1.Number定义的数值有数据范围限制
      Number只能表示“负2的53次方减一” 到 “2的53次方减1”之间的数值
   2.当出现极大数值时,可以使用一些特殊值表示
      如:
	  Infinity:
	     表示正无穷大的数值
		  一般指大于 1.7976931348623157e+308 的数;
      -Infinity:
	     表示负无穷大的数值
		  一般指小于 5e-324 的数;
   3.NaN(非数值Not a Number) 表示无效的数字    

Boolean 类型

布尔(Boolean)类型只有两个值:
     1.true(真)
	 2.false(假)
布尔类型常用于值判断
例:
var a = true;   // 定义一个布尔值 true
var b = false;  // 定义一个布尔值 false
var c = 2 > 1;  // 表达式 2 > 1 成立,其结果为“真(true)”,所以 c 的值为布尔类型的 true
var d = 2 < 1;  // 表达式 2 < 1 不成立,其结果为“假(false)”,所以 c 的值为布尔类型的 false

Null 类型

Null是一个只有一个值的特殊数据类型
  即表示空值,不存在任何值,常用于定义空对象指针 

注意事项:
   typeof(null)可以看出其结果为Object
   

Undefined 类型

Undefined是一个只有一个值的特殊数据类型
   当我们声明一个变量但未给变量赋值时
   这个变量的默认值就是 Undefined
var a;
console.log(a);  // 输出 undefined

typeof(a) 会返回undefined 

var m;
console.log(typeof m);  // 输出 undefined
console.log(typeof t);     // 输出 undefined

Symbol 类型

Symbol是ECMAScript6中引入一种新的数据类型
   指独一无二的值
Symbol类型的值需要使用Symbol()函数来生成 
var str = "888";
var sym1 = Symbol(str);
var sym2 = Symbol(str);
console.log(sym1);          // 输出 Symbol(123)
console.log(sym2);          // 输出 Symbol(123)
console.log(sym1 == sym2);  
// 输出 false
// 虽然 sym1 与 sym2 看起来是相同
// 但实际上它们并不一样
// 根据 Symbol 类型的特点
// sym1 和 sym2 都是独一无二的

JS引用数据类型

Object 类型

JavaScript中的对象(Object)类型
   是一组由键、值组成的无序集合
   定义对象类型需要使用花括号{ }
如:
{name1: value1, name2: value2, name3: value3, ..., nameN: valueN}

name1、name2、name3、...、nameN:
   为对象中的键
value1、value2、value3、...、valueN:
   为对应的值
例2:对象类型定义示例
var person = {
    name: 'maomao',
    age: 18,
    tags: ['js', 'python', 'java'],
    city: 'ShenZhen',
    hasCar: true,
    zipcode: null
};
console.log(person.name);       // 输出 maomao
console.log(person.age);        // 输出 18

Array 类型

数组(Array):
 指一组按顺序排列的数据的集合
 数组中的每个值都称为元素
 且数组中可以包含任意类型的数据
  
 在JavaScript中定义数组需要使用方括号[ ]
 数组中的每个元素使用逗号进行分隔 
//定义方式1
var arr =[88, 2, 3, 'python', true, null]

//定义方式2
var arr = new Array(88, 2, 3, 4);
console.log(arr);       // 输出 [88, 2, 3, 4]

//访问数组的方式
 var arr = [88, 2, 3.14, 'Python', null, true];
console.log(arr[0]);  // 输出索引为 0 的元素,即 8
console.log(arr[5]);  // 输出索引为 5 的元素,即 true
console.log(arr[6]);  // 索引超出了范围,返回 undefined

Function 类型

函数(Function)
  是一段具有特定功能的代码块
   函数并不会自动运行
  使用函数名调用才能运行
例:
function sayHello(name){
    return "Hello, " + name;
}
var res = sayHello("Maomao");
console.log(res);  // 输出 Hello, Maomao
例2:
var fun = function(){
    console.log("https://www.linux28.com/js/");
}

function createGreeting(name){
    return "Hello, " + name;
}

function displayGreeting(greetingFunction, userName){
    return greetingFunction(userName);
}

var result = displayGreeting(createGreeting, "Maomao");
console.log(result);  // 输出 Hello, Maomao