自动类型转换
函数转换

parseInt()
1、parseInt()在转换之前,首先会分析该字符串,判断位置为 0 处的字符,判断它是否是个有效数字,如果不是,则直接返回 NaN,不再继续,如果是则继续,直到找到非字符
2、parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由 parseInt()方法的第二个参数指定的
3、如果十进制数包含前导 0,那么最好采用基数 10,这样才不会意外地得到八进制的值
parseFloat()
parseFloat()方法与 parseInt()方法的处理方式相似,但是parseFloat()可以识别第一个小数点

显示转换
toString()函数将内容转换为字符串形式,其中 Number 提供的
toString()函数可以将数字以指定的进制转换为字符串,默认为十进制。
Number 还提供了 toFixed()函数将根据小数点后指定位数将数字转为字符串,四舍五入

强制转换
JS 为 Number、Boolean、String 对象提供了构造方法,用于强制转换其他类型的数据。
此时操作的是整个数据,而不是部分

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>类型转换</title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
	//parseInt()
	console.log(parseInt("123ab1c"));//123
	console.log(parseInt("123.4.5ab1c"))//123
	console.log(parseInt("0xA")); //returns 10
 		console.log(parseInt("22.5")); //returns 22
 		console.log(parseInt("blue111")); //returns NaN
 		
 		console.log(parseInt("AF", 16)); //returns 175
		console.log(parseInt("10", 2)); //returns 2
		console.log(parseInt("10", 8)); //returns 8
		console.log(parseInt("10", 10)); //returns 10
		
		console.log(parseInt("010")); //returns 8
		console.log(parseInt("010", 8)); //returns 8
		console.log(parseInt("010", 10)); //returns 10
		
		console.log("==========================");
		// parseFloat()
		console.log(parseFloat("123ab1c")); // 123
		console.log(parseFloat("123.4ab1c")); // 123
		console.log(parseFloat("0xA")); //returns 10
 		console.log(parseFloat("22.5")); //returns 22
 		console.log(parseFloat("blue111")); //returns NaN
 		
 		console.log("====================显式转换==========");
 		var data = 10;
		console.log(data.toString())
		console.log(data.toString(2))
		data = 1.4;
		console.log(data.toFixed(0));
		data = 1.49;
		console.log(data.toFixed(1));
		data = true;
		console.log(data.toString());
		
		console.log("===================强制转换==========");
		console.log(Number("1"));
		console.log(Number("1.4"));
		console.log(Number("123aabc"));
		console.log(Number("abc"));
		console.log(Number(true));
		console.log(Number(false));
		console.log(Number(19));
		console.log(Number(new Object()));
		console.log(Number(new Array()));
		
	</script>
	</html>

数组的特点:

数组的长度是可变的
2、数组的类型可以不一样
3、不存在下标越界
数组的定义
1、隐式创建
var 变量名 = [值1,值2,…];
2、直接实例化
var 变量名 = new Array(值1,值2,…);
3、实例化并指定长度
var 变量名 = new Array(size);
获取数组的长度
数组.length
2、数组的遍历
数组的遍历即依次访问数组的每一个元素 ,JS 提供三种遍历数组的方式:
1、普通 for 循环遍历
for(var i = 0; i < 数组名.length; i++) {
}
注:可以拿到undefinded的值,无法获取数组中属性对应的值
2、for … in
for(var i in 数组) {
// i是下标或属性名
}
注:无法拿到undefinded的值,可以获取数组中属性对应的值
3、foreach
数组.foreach(function(element,index){
// element:元素;index:下标
});
注:无法获取属性对应的值与undefinded的值
* for – 不遍历属性
* foreach – 不遍历属性和索引中的 undefined
* for in – 不遍历索引中的 undefined

数组提供的方法
push 添加元素到最后
unshift 添加元素到最前
pop 删除最后一项
shift 删除第一项
reverse 数组翻转
join 数组转成字符串
indexOf 数组元素索引
slice 截取(切片)数组,原数组不发生变化
splice 剪接数组,原数组变化,可以实现前后删除效果
concat 数组合并

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>数组</title>
	</head>
	<body>
	</body>

<script type="text/javascript">
		// 1、隐式创建
		var arr1 = [1,'a','b','c'];
		// 2、直接实例化
		var arr2 = new Array('aa','bb','cc');
		// 3、实例化并指定长度
		var arr3 = new Array(5);
		
		// 获取数组的长度
		console.log(arr1.length);
		console.log(arr2.length);
		console.log(arr3.length);
		
		arr1.length = 10;
		console.log(arr1.length);
		console.log(arr1);
		
		// 赋值
		arr1[0] = 2; // 修改数组的值
		arr1[6] = 'hello'; // 修改数组的值
		arr1[13] = '13';
		console.log(arr1);
		
		// 取值
		console.log(arr1[10]);
		
		// 设置数组的属性
		arr1["ii"] = "zhangsan";
		console.log(arr1);
		console.log(arr1.ii);
		
		
		console.log("=======数组的遍历=========");
		// 1、普通 for 循环遍历
		for (var i = 0; i < arr1.length; i++) {
			console.log(i + "----------" + arr1[i]);
		}
		console.log("===============");
		// for... in
		for (var i in arr1) {
			console.log(i + '----------' + arr1[i]);
		}
		console.log("===============");
		// foreach
		arr1.forEach(function(elem,index){
			console.log(index+ '----' + elem);
		});
		
		
		console.log("========数组提供的方法=======");
		console.log(arr2);
		arr2.push("dd"); // 数组的最后添加元素
		arr2[arr2.length] = "ee";
		console.log(arr2);
		arr2.unshift("hello");
		console.log(arr2);// 数组的最前面添加元素
		
		// 分割数组
		var str = arr2.join("-");
		console.log(str);
		// 将字符串转换成数组
		var strarr = str.split("-");
		console.log(strarr);
		
	</script>
</html>