前端Java Script基础(二)

** 数据类型**

1. 数据类型

数据类型决定了一个数据的特征,比如:1234和”1234”,直观上看这两个数据都是123,但实际上前者是一个数字,而后者是一个字符串。不同的数据类型在操作时会有很大的不同。

JavaScript中一共有5种基本数据类型:
(1)字符串型(String)
(2)数值型(Number)
(3)布尔型(Boolean)
(4)null型(Null)
(5)undefined型(Undefined) 未定义
一种引用数据类型(Object)

补充
在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义。

\" 表示 "       
\' 表示 '
\n 表示换行      
\t 制表符(表示一个tab键)
\\ 表示\

2. String字符串
(1)在JS中字符串需要使用引号引起来
(2)使用双引号或单引号都可以,但是不要混着用
(3)引号不能嵌套,双引号不能放双引号,单引号不能放单引号

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script type="text/javascript">		
			var str = 'hello';
			console.log(str);			
			str = 'hello:"world!"';		//正确表示
			str = "hello:"world!"";		//错误表示
			str = "hello:\"world\t !!!\"";//正确表示		
			str = "\\\\\\";		//打印三个\\\	
			
			//alert("str");	  //输出字面量 字符串str			
			//alert(str);	  //输出变量str	
			var str2 = "hello";	//变量只有第一次声明时才写	
			str2 = "你好";			
			str2 = 3;
			//alert("hello,world");			
			//console.log("helloWorld!");						
		</script>
	</head>
	<body>
	</body>
</html>

3. Number
(1)在JS中所有的数值都是Number类型,包括整数和浮点数(小数)

(2)JS中可以表示的数字的最大值:Number.MAX_VALUE(1.7976931348623157e+308)
Number.MIN_VALUE 大于0的最小值(最小的正值):5e-324
如果使用Number表示的数字超过了最大值,则会返回一个
Infinity 表示正无穷(Infinity是一个字面量)
-Infinity 表示负无穷

(3)使用typeof检查Infinity也会返回number

  • 可以使用一个运算符 typeof 来检查一个变量的类型
  • 语法:typeof 变量
    检查字符串时,会返回string
    检查数值时,会返回number

(4) NaN 是一个特殊的数字,表示Not A Number,使用typeof检查一个NaN也会返回number

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">							
			var a = 123;		//数字123			
			var b = "123";		//字符串123
			//console.log(typeof b);			
			a = -Number.MAX_VALUE * Number.MAX_VALUE;			
			a = "abc" * "bcd";			
			a = NaN;		
			//console.log(typeof a);
			
			a = Number.MIN_VALUE;			
			//console.log(a);	
					
			/*  在JS中整数的运算基本可以保证精确 */
			var c = 1865789 + 7654321;			
			/*若使用JS进行浮点运算,可能得到一个不精确的结果,所以千万不要使用JS进行对精确度要求比较高的运算	*/
			var c = 0.1 + 0.2;			
			console.log(c);			
		</script>
	</head>
	<body>
	</body>
</html>

4.Boolean 布尔值
布尔值只有两个,主要用来做逻辑判断

  • true - 表示真
  • false - 表示假

使用typeof检查一个布尔值时,会返回boolean

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var bool = false;			
			console.log(typeof bool);		//boolean
			console.log(bool);				//false		
		</script>
	</head>
	<body>
	</body>
</html>

5. Null和Undefined
(1) Null(空值)类型的值只有一个,就是null

  • null这个值专门用来表示一个为空的对象

  • 使用typeof检查一个null值时,会返回object

(2) Undefined(未定义)类型的值只有一个,就undefind

  • 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
  • 使用typeof检查一个undefined时也会返回undefined
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var a = null;			
			var b = undefined;			
			console.log(typeof b);			//undefined
			console.log(typeof a);			//null
		</script>
	</head>
	<body>
	</body>
</html>

强制类型转换

  1. 强制类型转换
    (1) 指将一个数据类型强制转换为其他的数据类型
    (2)类型转换主要指将其他的数据类型,转换为String Number Boolean

2.将其他的数据类型转换为String
(1)方法一

  • 调用被转换数据类型的toString()方法
  • 该方法不会影响到原变量,它会将转换的结果返回
  • 注意:null和undefined这两个值没有toString()方法,如果调用他们的方法会报错。

(2)方法二:

  • 调用String()函数,并将被转换的数据作为参数传递给函数
  • 使用String()函数做强制类型转换时:
    A.对于Number和Boolean实际上就是调用的toString()方法
    B.对于null和undefined,就不会调用toString()方法,它会将 null 直接转换为 “null”;将 undefined 直接转换为 “undefined”
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">			
			
			//调用a的toString()方法
			//调用xxx的yyy()方法,就是xxx.yyy()
			
			var a = 123;
			a = a.toString();
			//将Boolean类型转换成String类型
			a = true;
			a = a.toString();
			
			a = null;
			//a = a.toString();				 //报错			
			a = undefined;
			//a = a.toString(); 			//报错
			
			//调用String()函数,来将a转换为字符串(a做参数)			
			a = 123;						
			a = String(a);
			
			a = null;
			a = String(a);
			
			a = undefined;
			a = String(a);
			
			console.log(typeof a);
			console.log(a);
		</script>
	</head>
	<body>
	</body>
</html>

3.将其他的数据类型转换为Number
1.方法一:
使用Number()函数

  • 字符串 --> 数字
    (1)如果是纯数字的字符串,则直接将其转换为数字
    (2)如果字符串中有非数字的内容,则转换为NaN
    (3)如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
  • 布尔 --> 数字 (true 转成 1 false 转成 0)
  • null --> 数字 0
  • undefined --> 数字 NaN

2.转换方式二:

  • 这种方式专门用来对付字符串
  • parseInt() 把一个字符串转换为一个整数
  • parseFloat() 把一个字符串转换为一个浮点数
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">		
						
			//调用Number()函数来将a转换为Number类型
			var a = "123";			
			a = Number(a);		//123
			
			a="abc";
			a=Number(a);     //NaN
			
			a = false;
			a = Number(a);    //0
			
			a = null;
			a = Number(a);      //0
			
			a = undefined;
			a = Number(a);      //NaN
			
			a = "123567a567px";
			//调用parseInt()函数将a转换为Number
			/* parseInt()可将一个字符串中的有效的整数内容去出来,然后转换为Number  */
			a = parseInt(a);
			
			/* parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数   */
			a = "123.456.789px";
			a = parseFloat(a);
			
			/* 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作   */
			a = true;
			a = parseInt(a);
			
			a = 198.23;
			a = parseInt(a);	//对数值取整		
			console.log(typeof a);
			console.log(a);								
		</script>
	</head>
	<body>
	</body>
</html>

4. 将其他的数据类型转换为Boolean
1.方法: 使用Boolean()函数

  • 数字 —> 布尔(除了0和NaN,其余的都是true)

  • 字符串 —> 布尔(除了空串,其余的都是true)

  • null和undefined都会转换为false

  • 对象也会转换为true

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">			
				
			var a = 123; 			//true
			a = -123; 				//true
			a = 0; 					//false
			a = Infinity; 			//true
			a = NaN; 				//false			
			//调用Boolean()函数来将a转换为布尔值
			a = Boolean(a);
			
			a="hello";   			//true
			a = " ";  				//false			
			a = Boolean(a);
			
			a = null; 				//false
			a = Boolean(a);			
			a = undefined; 			//false
			a = Boolean(a);		
			console.log(typeof a);
			console.log(a);			
		</script>
	</head>
	<body>
	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值