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
空引用数据类型
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
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);
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. 引用数据类型
var obj = {}; //空对象
//学生对象,内部放置的是键值对,键:值,键-属性名,值-属性值
var obj2 = {
//属性
name:'zhangsan',
age:12,
//方法
sayHello:function(){
console.log('hello');
}
};
console.log(obj);
console.log(obj2);
//空数组
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
注:函数声明后,如果不运行,那么函数内部的代码是不会执行的。运行函数,使用函数,在函数运行的时候,传递的参数叫做实参,实际参数。运行函数需要关注:函数的名字,将实参赋值给形参,运行函数内部的代码,接受返回值。