JavaScript demo2_数据类型与变量

  • 声明变量
    • 通过var关键字声明变量
    • 可以声明变量的同时给变量赋值
    • 可以一次声明一个变量也可以一次声明多个变量
    • 如果只声明变量未对其赋值,默认值为undefined
    • 如果变量重名产生覆盖
    • 注意
      • 变量严格区分大小写
      • 变量名称最好遵循驼峰标记法或者下划线法
      • 变量名称最好含义明确
  • 变量在内存中的存储与释放
    • 收集方式
    • 收集内容
    • 回收算法

test1.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript">
		// 声明变量
		var a;
		var b;
		var c,d;
		// alert(a); // undefined无定义数据类型
		// 声明变量的同时并且赋值
		var test = 'this is a test';
		var test1 = 12;
		var test2 = 1.2;
		var test3 = true;
		var test4 = false;
		alert(test);
		// 声明多个变量赋值相同的初始值
		var a = b = c = d = e = 1;
		alert(a); // 1
		// 变量重名会产生覆盖
		a = 33;
		alert(a); // 33
		// 变量名称声明严格区分大小写
		var username = 'bing';
		var USERNAME = 'yuan';
		alert(username); // bing
		alert(USERNAME); // yuan
		// 变量名称最好含义明确,以字母或者下划线开始,跟上数字字母下划线
		var age = 12;
		var test5 = 'hello';
		// var 12a = 'bb';
		// alert(12a);
		var _test = 'hello';
		alert(_test); // hello
		// 驼峰标记法
		var firstName = 'bing'; // 小驼峰
		var FirstName = 'bing'; // 大驼峰
		var first_name = 'bing'; // 下划线法
	</script>
</head>
<body>

</body>
</html>

  • 基本数据类型:
    • 数值型:十进制、十六进制(0x开头)、八进制(0开头)、特殊值(Infinity无穷大、NaN)
    • 字符串型:转义符
      • \n 回车换行
      • \r 换行
      • \t 水平制表符
      • \" "
      • \' '
    • 布尔类型 true/false
  • 引用数据类型:
    • 对象(object)
    • 数组(array)
    • 函数(function)
  • 特殊数据类型:
    • 无定义数据类型undefined。用来表示不存在的值或者尚未赋值的变量。
    • 空值null。null表示空值,表示什么都没有,相当于一个占位符。

nullundefined的区别就是undefined表示变量未被赋值,而null表示变量被赋予了一个空值

test2.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>
	<script type="text/javascript">
		// 十进制
		var a = 12;
		a = -23;
		a = 12.3;
		a = .23e4; // 0.23*10*10*10*10 = 2300
		a = 2e3; // 2000
		a = 3E2; // 300
		a = 3E-2; // 0.03
		// 十六进制
		a = 0xABCDEF;
		a = 0X0;
		a = 0X1a2b3c4d;
		// 八进制
		a = 00;
		a = 0123;
		a = 01234234;
		// 正无穷大 Infinity
		a = 1.79e309; // Infinity
		a = -1.79e309; // -Infinity
		// NaN:Not a Number
		a=0/0; //NaN
		// 通过isNaN()来检测是否是NaN值
		// alert(isNaN(a)); // true
		// NaN不能和自身比较
		// alert(NaN===NaN); // false

		// 字符串类型
		var str = 'this is a test'; // this is a test
		var str1 = 'hello world'; // hello world
		// var str2 = aaa;
		// var username = "king's"; // king's
		// var username = 'king\'s'; // king's
		// var str2 = 'a\nbcd';
		// var str2 = 'a\nb\rc\td"e\\f';
		// alert(str2);

		// 布尔类型
		var married = true; // true
		// married = TRUE;
		// alert(true); // true

		// 声明变量为赋值
		var test6; // undefined
		// 赋值为不存在的属性值
		var test7 = String.NotExists; // undefined

		// null值
		var test8 = null; // null
		alert(test8); // null
		alert(null == undefined); // true
		alert(null === undefined); // false
	</script>
</body>
</html>

test3.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript">
		/*
			if(exp){
				exp为true的代码段;
			}eles{
				exp为false的代码段;
			}
		*/

		// 其它类型转换成布尔类型假的有
		var a; // undefined -> false
		// typeof得到变量的类型
		// alert(typeof a); // undefined
		a = null; // null -> false
		// 0 0.0 NaN
		a = 0; // 假
		a = 0.0; // 假
		a = 0 / 0; // NaN
		a = NaN; // 假
		// alert(typeof NaN); // number
		a = ''; // 空字符串 -> false
		a = '0'; // 真
		a = ' '; // 真
		// if(a){
		// 	alert('真');
		// }else{
		// 	alert('假'); 
		// }

		// 其它类型转换成数值型
		var b = undefined; // undefined -> NaN
		b = null; // null -> 0
		b = true; // true -> 1
		b = false; // false -> 0
		b = '12'; // 121
		// alert(b + 1); 

		var c = '12'; // '12' -> 12 2*12=24
		c = '3bing'; // '3bing' -> NaN
		c = 'true'; // NaN
		// alert(2*c); 

		c = '33'; // string
		// alert(typeof c); // string
		c = c*1; // number
		// alert(typeof c); // number
	</script>
</head>
<body>
	<h1>隐式转换的例子</h1>
	<script type="text/javascript">
		// 其它类型转换成字符串型
		document.write(undefined); // 'undefined'
		document.write('<br/>');
		document.write(null); // 'null'
		document.write('<br/>');
		document.write(NaN); // 'NaN'
		document.write('<br/>');
		document.write(123); // '123'
		document.write('<br/>');
		document.write(true); // 'true'
		document.write('<br/>');
		document.write(false); // 'false'
		document.write('<br/>');
		alert(1+"1"); // 11 拼接字符串
		alert('2' + 12); // 212
	</script>
</body>
</html>

test4.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript">
		// 其他类型转换成布尔类型false的有
		var test = Boolean(0); // false
		test = Boolean(0.0); // false
		test = Boolean(-0); // false
		test = Boolean(-0.0); // false
		test = Boolean(-0.1);  // true
		test = Boolean(NaN); // false
		test = Boolean(undefined); // false
		test = Boolean(''); // false
		test = Boolean('0'); // true
		// 其他类型转换成字符串型
		test = String(1234); // 1234
		test = String(23.34); // 23.34
		test = String("this is a test"); // this is a test
		test = String(true); // true
		test = String(false); // false
		test = String(NaN); // NaN
		test = String(undefined); // undefined
		test = String(null); // null
		// 其他类型转换成数值型
		test = Number(12); // 12
		test = Number(232.3); // 232.3
		test = Number(232.0); // 232
		test = Number(true); // 1
		test = Number(false); // 0
		test = Number(undefined); // NaN
		test = Number(NaN); // NaN
		test = Number(null); // 0
		test = Number("3bing"); // NaN
		test = Number("3.14"); // 3.14
		// 通过parseInt()进行转换成整型
		test = parseInt('123'); // 123
		test = parseInt('234.2'); // 234
		test = parseInt('0xabcdef'); // 11259375
		test = parseInt('01234'); // 668
		test = parseInt('101',2); // 5
		test = parseInt('12',16); // 18
		test = parseInt('3king'); // 3
		test = parseInt('true'); // NaN
		test = parseInt(true); // NaN
		test = parseInt('24 e6 8 10'); // 24
		// 通过parseFloat()转换成浮点型
		test = parseFloat('123.34abc'); // 123.34
		test = parseFloat('123'); // 123
		test = parseFloat('abc'); // NaN
		test = parseFloat(' 2e3a'); // 2000
		alert(test);
	</script>
</head>
<body>
	<h1>强制转换的例子</h1>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值