开心小窝

一个记录日常学习且神奇的地方

Javascript声明变量、数据类型

声明变量

使用 var 可声明全局或函数级别作用域的变量,值是可以改变,如以下几种方式:

var 变量名;
var 变量名1,变量名2,....,变量名n;
var 变量名 = 值;

使用 let 可以声明块级别作用域的变量,值是可以改变。

    1.变量不能重复声明。

    2.不存在变量提升(不可以在声明之前调用)

    3.不影响作用链

如以下几种方式:

let 变量名;
let 变量名1,变量名2,....,变量名n;
let 变量名 = 值;

如果变量的值在脚本运行的整个过程中保持不变可以通过const声明,声明如下:

const 变量名 = 值;

三种变量的区别

  • var 和 let 声明变量时可以不需要初始化,没有初始化的变量的值为“undefined”,在运行的过程中值是可以被修改的。
  • const 声明变量时必须要进行初始化,并且在代码的整个运行过程中不能修改初始化的值,否则会报错。
  • var 声明的变量,不支持块级作用域,let 和 const 声明的变量支持块级作用域,出了块级作用域则失效
// 定义全局变量
var a = 5;
if(a >= 5){
    // 定义块级变量
    let a = 4;
    console.log(a);
}
// 输出内容为 4 

基本数据类型

可以通过typeof()函数获取变量的数据类型

 String 类型

(可以使用单引号或双引号)

var str_o = 'Hello JS' // 单引号
var str_t = "Hi Js" // 双引号

Number 类型

(可以是整数或者是小数,或者是科学计数)

var num_o = 1; // 整数
var num_t = 3.14; // 浮点数(小数)
var num_T = 314e5; // 科学计数法(31400000)

Boolean 类型

(可以是true(真)或者false(假),只有这个两个值)

var a = true;
var b = false;
if(a){
    console.log('这是a为真');
}
if(b){
    console.log('这是b为真');//但它不会被执行
}

Null 类型

Null 是一个只有一个值的特殊数据类型,表示一个“空”值,即不存在任何值,什么都没有,用来定义空对象指针。

 

Undefined 类型

如果声明一个变量但未给变量赋值时,这个变量的默认值就是 Undefined

var a;
console.log(a); // 输出 undefined

Symbol 类型

Symbol 是 ECMAScript6 中引入的一种新的数据类型,表示独一无二的值,Symbol 类型的值需要使用 Symbol() 函数来生成

var str = '1234';
var num_o = Symbol(str);
var num_t = Symbol(str);

console.log(num_o,num_t,num_o == num_t)
// 输出 1234,1234,false

Array 类型

数组是一组按顺序排列的数据的集合,数组中的每个值都称为元素,而且数组中可以包含任意类型的数据。

数组用[ ]声明,且每个元素使用逗号进行分隔,数组的下标是从0开始的。

var arr = [1,2,3,4,'hello',true]
console.log(arr[0]); // 输出 1


// 使用 Array() 函数来创建数组
var arr1 = new Array(1,2,3,4);
console.log(arr1[1]); // 输出 2

Object 类型

JavaScript 中的对象(Object)类型是一组由键、值组成的无序集合,定义对象类型需要使用花括号{ }。

则值可以是任意数据类型。

var set = {键:值,键1:值2,....,键N:值N}
var person = {
    name:'time',
    age:18
}
// 通过键来获取值,用法:对象名.键
console.log(person.name); // 输出 time

function 类型

函数(function)是一段具有特定功能的代码块,函数并不会自动运行,需要调用函数名才能运行。

function hello (name){
    return 'hello ' + name;
}

var res = hello('time');
console.log(res); // 输出 hello time