数据类型

ECMAScript不支持自定义类型,只有6种数据类型:
5种基本数据类型(简单数据类型)

以下直接通过一些实例代码情况来进行举例以用来帮助了解和具体情况学习。(注:console.log那一行输出的后面注释为输出结果)

1. Undefined未定义类型

//undefined类型,未定义类型。 声明了但是没有初始化的情况下,就属于undefined类型,undefined类型就只有一个值 undefined。
var a;    //变量声明
console.log(a);     //undefined

var b = undefined;
console.log(b);		//undefined

var c;
c = undefined;
console.log(c);			//undefined

2. Null空引用数据类型

  • null类型,取值只有一个,即null。null类型的变量将来存放的是对象。null可以表示一个空对象的指针。
var obj = null;
console.log(obj);
  • 注意undefined VS null

undefined派生自null,可通过相等与全等的概念来进行举例比较二者不同。

//==相等,双等,判断值,只要值一样,结果就为true,否则为false
//===全等,三等,是判断值和数据类型的,只要值和数据类型都相等,结果为true,否则为false
console.log(1);
console.log('1');
console.log(1 == '1');  //true
console.log(1 === '1');  //false
console.log('-----------------------');
console.log(undefined == null);  //true
console.log(undefined === null);  //false

补充学习:

//!= 不相等,判断值,值不一样返回true,否则返回false
console.log(1!='1');  //false
//!== 不全等,判断值和数据类型,值或者数据类型不一样,返回true,否则返回false
console.log(1!=='1');  //true

3. Boolean布尔类型

//boolean类型 布尔类型 取值true false
//同时声明多个变量并初始化
var bool1 = true,bool2 = false;
//同时打印多个内容
console.log(bool1,bool2);

console.log('true','false');
console.log(bool1 == 'true');   //false
console.log(true === 'true');   //false

console.log(true == 1);   //true 
console.log(false == 0);  //true

4. number数值类型

//number类型  数值类型  取值:整数,单精度/双精度浮点数,二进制,八进制,十进制,十六进制,科学计数法
var num1 = 1,num2 = 3.159,num3 = 011,num4 = 0x11;
console.log(num1,num2,num3,num4);    //1 3.159 9 17
//  11  八进制转换成十进制  1*8^1+1*8^0 = 9
//  11  十六进制转换成十进制  1*16^1+1*16^0 = 17

var num5 = 3.14e5,num6 = 0xaa;
console.log(num5,num6);  //31400  170

//计算  /除有小数   *乘
var num7 = 1/2,num8 = 3*4;
console.log(num7,num8);    //0.5   12
//  /除   %取余
console.log(10/3);   //3.3333333333333335 
console.log(10%3);   //1

console.log(9/0);   //Infinity   正无穷大
console.log(-9/0);   //-Infinity   负无穷大
console.log(9/'hello');   //NaN (Not a Number)
console.log(NaN == NaN);  //false
  • isNaN() 函数用来判断参数(写在小括号内)是否“不是数值”,如果是数值则返回true,否则返回false。
var bool = isNaN(9/'hello');
console.log(bool);          //true
  • 数值范围检测
//isFinite()函数可以判断参数是否在最大值和最小值之间,如果在则为true,否则就是false
var bool2 = isFinite(9/0);
console.log(bool2);   //false
  • 数值范围
//ECMAScript number类型所能表示的最小范围和最大范围
console.log(Number.MIN_VALUE);   //5e-324
console.log(Number.MAX_VALUE);   //1.7976931348623157e+308

5. String字符串类型,需要使用单引号或者双引号括起来

  • 字符字面量
//string类型  '' "" 字符字面量/转义字符
var str1 = 'hello',str2 = 'world';
//+用在字符串中间有拼接字符串的作用
console.log(str1+str2);
//换行显示
console.log(str1+'\n'+str2); //'hello\nworld'
//制表符
console.log(str1+'\t'+str2); 
//退格显示   删除一个字符
console.log(str1+'\b'+str2); 
//回车 将当前位置移动到本行开头
console.log(str1+'\r'+str2); 
// 放一个\  \\
console.log(str1+'\\'+str2);
//放"  '
console.log('hello\'world');
console.log(str1+'\''+str2);
console.log(str1+'\"'+str2);
  • length 属性 获取字符串的长度
console.log(str1.length);    //5
  • 注意】区别一下变量和字符串的区别
var hello = '你好';
console.log(hello);   //你好
console.log('hello');   //hello
console.log(hello+'hello');   //你好hello
  • 学习过程中可能出现的问题:

console.log(a); //报错 a is not defined (因为a变量没有被定义,使用未被定义的变量就会报错。)

解决问题XXX is not defined 1、看这个变量名是不是写错了
2、如果变量名没有写错,可能是变量未声明,则先声明这个变量

6. 引用数据类型

  • Object类型,对象,引用数据类型,其他的引用数据类型都直接或者间接继承自Object类型
var obj = {};  //空对象  
//学生对象,内部放置的是键值对,键:值,键-属性名,值-属性值
var obj2 = {
	//属性
	name:'zhangsan',
	age:12,
	//方法
	sayHello:function(){
		console.log('hello');
	}	  
};
console.log(obj);
console.log(obj2);
  • array类型 数组类型,数组内放的是一个一个的元素,元素与元素之间使用逗号分隔开。js数组中的元素的类型可以不一样。
//空数组
var arr = [];
var arr2 = [1,2,false,true,'hello',null,undefined,3,4,5];
console.log(arr);
console.log(arr2);
//访问数组中的元素,使用下标访问,在数组中下标从0开始,一直到数组的长度减一结束
console.log(arr2[4]);
console.log(arr2[9]);
//拿到数组最后一个位置
var index = arr2.length - 1;
console.log(arr2[index]);
console.log(arr2[arr2.length-1]);
  • 函数是代码执行单元,用于实现某些特殊的功能。
//function类型函数
//声明一个函数,function test(){}
//写在函数声明时候的小括号内的变量叫做形参,形式参数,形参只能在函数内部使用
function test(a,b){
	console.log(a,b);
//return函数的返回值,也就是在调用函数的时候,会有返回的结果
	return a + b;
}
var result = test(1,2); 
console.log(result);
//运行结果
//1 2
//3

注:函数声明后,如果不运行,那么函数内部的代码是不会执行的。运行函数,使用函数,在函数运行的时候,传递的参数叫做实参,实际参数。运行函数需要关注:函数的名字,将实参赋值给形参,运行函数内部的代码,接受返回值。