关于JS的数据类型

关于JS的数据类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>关于JS的数据类型</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				1.虽然JS中的变量在声明的时候不需要指定数据类型,但是在赋值,每一个数据还是有类型的。所以
				这里也需要学习一下JS包括哪些数据类型?
					JS中的数据类型有:原始类型,引用类型。
						原始类型:Undefined Number String Boolean Null
						引用类型:Object以及Object的子类
				2.ES规范(ECMAScript规范),在ES6之后,又基于以上的6重类型之外添加了一种新的类型:Symbol
				3.JS中有一个运算符叫做typeof,这个运算符可以在程序的运行阶段动态的获取变量的数据类型。
					typeof运算符的语法格式:
						typeof 变量名
					typeof运算符的运算结果是以下6个字符串之一:注意是字符串全部都是小写。
						undefined
						number
						string
						boolean
						object
						function
			*/
		   
		   //求和,要求a变量和b变量将来的数据类型必须是数字,不能是其他类型
		   //因为以下定义的这个sum函数是为了完成两个数字的求和
		   function sum(a,b){
			   if (typeof a == "number" && typeof b == "number"){
				   return a + b;
			   }
			   alert(a + "," + b + "必须都为数字!")
		   }
		   
		   var retValue = sum(1,2);
		   alert(retValue);
		</script>
	</body>
</html>

Undefined类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Undefined类型</title>
	</head>
	<body>
		<script type="text/javascript">
			// undefined类型只有一个值,这个值就是 underfined
			// 当一个变量没有手动赋值,系统默认赋值undefined
			// 或者也可以给一个变量手动赋值undefined.
			
			var i; //undefined
			var k = undefined; //undefined
			alert(i == k)//true
			var y = "undefined"; //"undefined"
			alert(y == k);//false
		</script>
	</body>
</html>

Number类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Number类型</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				1.Number类型包括哪些值?
					整数,小数,正数,负数,不是数字,无穷大都属于
				2.isNaN():结果是true则表示不是一个数字,结果是false则表示是一个数字
				3.parseInt()函数
				4.parseFloat() 函数
				5.Math.ceil() 函数(Math是数学类,数学类当中有一个函数叫ceil(),作用是向上取整)
			*/
		   
		   var v1 = 1;
		   var v2 = 3.14;
		   var v3 = -100;
		   var v4 = NaN;
		   var v5 = Infinity; //无穷大
		   
		   //Number
		   alert(typeof v1);
		   alert(typeof v2);
		   alert(typeof v2);
		   alert(typeof v4);
		   alert(typeof v5);
		   
		   /*
				关于NaN(表示Not a Number, 不是一个数字,但属于Number类型)
				什么情况下结果是一个NaN呢?
				运算结果本来是一个数字。最后算完不是一个数字的时候,结果是NaN。
		   */
		   
		   var a = 100;
		   var b = "中国";
		   alert(a / b); // 除号显然最后结果应该是一个数字,但是运算过程中导致最后不是一个数字,那么最后的结果是NaN
		   
		   //Infinity (当除数为0时,结果为无穷大)
		   alert(3/0);
		   
		   //关于isNaN函数
		   //用法: isNaN(数据), 结果是true表示不是一个数字,结果是false表示是一个数字
		   // isNaN : is Not a Number
		   
		   function sum(a, b){
			   if (isNaN(a) || isNaN(b)){
					alert("参与运算的必须是一个数字!")
					return;
				}
				return a + b;
		   }
		   
		   // parseInt() :可以将字符串自动转换成数字,并且取整数位
		   alert(parseInt("3.99999"))
		   alert(parseInt(3.99999))
		   
		   // parseFloat() :可以将字符串自动转换成数字
		   alert(parseFloat("3.14") + 1); // 4.14
		   
		   // Math.ceil() :向上取整数
		   alert(Math.ceil("2.1")); // 3
		   
		</script>
	</body>
</html>

Boolean类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Boolean类型</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				1.JS中的布尔类型永远只有俩个值:true 和 false(这一点和java相同)
				2.在Boolean类型中有一个函数叫做:Boolean()。
					语法格式:
						Boolean(数据)
					作用是将非布尔类型转换为布尔类型。(有就转换为true , 没有就转换成false)
					不写就自动调用函数转换
			*/
		   
		   var username = "jaxck";
		   
		   if(username){
			   alert("欢迎你");
		   }else{
			   alert("用户名不能为空!");
		   }
		   
		   // Null类型只有一个值,null
		   alert(typeof null); // "object"
		</script>
	</body>
</html>

String类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>String类型</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				String类型:
					1,在JS当中字符串可以使用单引号,也可以使用双引号。
					
					2.在JS中。怎样创建字符串?
						第一种:var s = "asd"
						第二种:(使用JS的内置的支持类String):var s2 = new String("asd");
					需要注意的是:String是一个内置的类,可以直接用。String的父类是Object。
					3.无论小string还是大String,属性和方法都通用。
					4.关于String类型的常用属性和函数
						常用属性:
							length 获取字符串长度
						常用函数:
							last			获取指定字符串在当前字符串中第一次出现处的索引
							indexOf			获取指定字符串在当前字符串中最后一次出现处的索引
							replace			替换 (注意:只替换第一个出现的)
							substr			截取子字符串
							substring		截取子字符串
							toLowerCase		转换小写
							toUpperCase		转换大写
							split			拆分字符串
			*/
		   //小string(属于原始类型String)
		   var x = "asd";
		   alert(typeof x); // "String"
		   
		   //大String(属于Object类型)
		   var x2 = new String("asd");
		   alert(typeof x2); //"Object"
		   
		   //考点:substr和substring的区别
		   //substr(startIndex, length)
		   alert("abcdef".substr(2,4));
		   //substring(startIndex, endIndex) 不包括endIndex
		   alert("abcdef".substring(2,4));
		</script>
	</body>
</html>

Object类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Object类型</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				Object类型:
					1.Object类是所有类型的超类,自定义的任何类型,默认继承Object
					2.Object类包括哪些属性:
						prototype属性 (常用的。主要是这个):作用是给动态的扩展属性和函数。
						constructor属性
					3.Object类包括哪些函数
						toString()
						valueOf()
						toLocaleString()
					4.在JS当中定义的类默认继承Object。会继承Object类中所有属性以及函数
						换句话说,自定义的类中也有prototype属性。
					5.在JS中怎么定义类。怎么new对象?
						定义类的语法:
							第一种方式:
								function 类名(形参){
									
								}
							第二种方式:
								类名 = function(形参){
									
								}
						创建对象的语法:
								new 构造方法名(实参); // 构造方法名和类名一致。
			*/
		   
		   function sayHello(){
			   
		   }
		   
		   //把sayHello当做一个普通的函数来调用
		   sayHello();
		   
		   //这种把sayHello当做一个类来创建
		   var obj = new sayHello(); // obj是一个引用,保存内存地址指向堆中对象
		   
		   function user(name,age){
			   this.name = name;
			   this.age = age;
		   }
		   //另一种方式创建
		   // user = function(name,age){
			  //  this.name = name;
			  //  this.age = age;
		   // }
		   
		   var u1 = new user("zjagnsan",12);
		   
		   //俩种方式
		   alert(u1.name);
		   alert(u1["age"]);
		   
		   
		   
			Product = function(pno,pname,price){
				//属性
				this.pno = pno;
				this.pname = pname;
				this.price = price; 
				//函数
				this.getPrice = function(){
					return this.price;
				}
			}
			
			var xigua = new Product(111,"西瓜",4.0);
			var pri = xigua.getPrice();
			alert(pri); // 4
			
			//可以通过prototype这个属性来动态属扩展函数以及属性
			Product.prototype.getPane = function (){
				return this.pname;
			}
			
			var name = xigua.getPane();
			alert(name);
		
			String.prototype.suibian = function (){
				alert("这是给String方法扩展的随便")
			}
			
			"123".suibian();
			
		</script>
	</body>
</html>

NaN undefined null 这三个值的区别

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>NaN undefined null 这三个值的区别</title>
	</head>
	<body>
		<script type="text/javascript">
			//null NaN undefined 数据类型不一样
			alert(typeof NaN); //"number"
			alert(typeof null); // "object"
			alert(typeof undefined);  //"undefined"
			
			// null 和 undefined可以等同
			//== 是相对等同, ===是却对等同
		</script>
	</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值