JavaScript基础

1.JavaScript:
是一种基于对象和事件驱动的脚本语言.
后缀名: .js,JavaScript也是边解释边执行的语言.
2.JavaScript的作用:
2.1:表单验证,增加网站安全.
2.2:动态特效,提高用户体验度.
2.3:驱动事件的执行,增强用户交互性.
3.JavaScript的组成:
ECMAScript(js的基础语法),
DOM(文档对象模型),
BOM(浏览器对象模型).
4.JavaScript是一种弱类型语言.
5.页面引入JavaScript的方式
5.1:行内JavaScript:只能在标签中使用.

eg:<!--行内js-->
		<h1 onclick="javascript:alert('下周马上可以学后端');">java开发人员学JS的目标			</h1>

5.2:内部JavaScript:可以在html里面任何地方使用.

eg:<!--内部js-->
			<script type="text/javascript">
				alert("这是一个内部js");
		   </script>

5.3:外部JavaScript:先写外部js文件,再在html页面中引入

eg:<!--引入外部的js-->
		  <script type="text/javascript" src="js/1.js"></script>

6.JavaScript的输出方式:

//第一种弹出窗体输出
			alert("Hello JavaScript");
			//第二种在body中输出
			document.write("Hello china");
			//第三种在控制台输出
			console.log("Hello World");

7.JavaScript的变量
7.1:声明变量: var 变量名;
7.2:给变量赋值: 变量名=值;
7.3:声明变量的同时赋值: var 变量名=值;

eg://声明变量
			var weight;
			var name;
			//给变量赋值
			name="八戒";
			//给变量声明同时赋值
			var age=18;
			var isGF=false;
			var sex="男";
			var height=1.80;
			
			//在js中声明变量也可以用var (不推荐)
			address="千锋";
			
			document.write(weight+"<br/>");
			document.write(name+"<br/>");
			document.write(age+"<br/>");
			document.write(isGF+"<br/>");
			document.write(sex+"<br/>");
			document.write(height+"<br/>");
			document.write(address+"<br/>");

8.JavaScript的数据类型:
number,string,boolean,object,undefined,function
注意:
在javaScript中如果变量省略 value 参数,或者设置为 0、-0、null、""、 false、undefined 或 NaN,则该对象设置为 false.

eg:var a=0;
			
			if (a) {
				document.write("a的值为true");
			}else{
				document.write("a的值为false");
			}

8.1:获得变量的数据类型: typeof(变量)
8.2:获得变量的数据类型: typeof 变量

eg://判断变量的数据类型
			document.write(typeof(weight)+"<br/>");
			document.write(typeof name+"<br/>");
			document.write(typeof(age)+"<br/>");
			document.write(typeof(isGF)+"<br/>");
			document.write(typeof(sex)+"<br/>");
			document.write(typeof(height)+"<br/>");
			document.write(typeof(address)+"<br/>");

9.javaScript中运算符(算术运算符,关系运算符,赋值运算符,逻辑运算符)与java中用法是一样的.
注意:
==比较是变量的值,与数据类型无关;
===比较是变量的值和数据类型

eg:var num1="11";
			var num2=11;
			var num3=11;
			
			//==比较是变量的值,与数据类型无关
			//在javaScript中所有变量都可以用==比值.
			document.write(num1==num2);//true
			document.write("<br/>")
			document.write(num2==num3);//true
			document.write("<br/>")
			//===比较是变量的值和数据类型
			document.write(num1===num2);//false
			document.write("<br/>")
			document.write(num2===num3);//true
			document.write("<br/>")

10.JavaScript的数组:像java中数据和集合综合体.
10.1:数组的声明:

eg://第一种声明数组
			var arr1=["苹果","菠萝","山竹"];
			
			//第二种声明数组
			var arr2=new Array();
			//给数组每个空间赋值
			arr2[0]="看直播";
			arr2[1]="吃饭";
			arr2[2]="睡觉";
			
			//第三种声明数组
			var arr3=new Array(2);
			//给数组每个空间赋值
			arr3[0]="lol";
			arr3[1]="吃鸡";
			arr3[2]="修仙";
			
			//第四种声明数组
			var arr4=new Array("火锅","烤肉","泡馍");

10.2:向数组中添加值

eg://第一种:向数组中添加值
			arr4[3]="烧烤"
			
			//第二种:向数组末尾添加元素
			arr4.push("啤酒","小龙虾");
			
			//第三种:向数组开头添加元素
			arr4.unshift("猪脚饭");

10.3:修改数组中值

eg://第一种:修改数组中元素
			arr4[0]="白切鸡";
			
			//第二种:修改数组中元素,第一个参数要删除元素起始索引,
					//第二个参数要删除的元素个数,后面参数就是添加到删除位置的元素
			arr4.splice(1,2,"烤竹鼠","榨菜");

10.4:删除数组中值

eg://第一种:删除数组中指定索引的元素的值,位置还在
			arr4[0]=undefined;
			
			//第二种:删除数组中最后一个元素.
			arr4.pop();
			
			//第三种:删除数组中第一个元素
			arr4.shift();
			
			//第四种:删除数组中指定索引处,指定个数的元素,第一个参数要删除元素的起始索引,第二个参数要删除的元素个数
			arr4.splice(1,2);
			
			//第五种:删除指定元素的值,位置还留着
			delete arr4[0];
			
			//第六种:删除数组中所有元素
			arr4.length=0;

10.5:遍历数组:

eg:for(var i=0;i<arr4.length;i++){
				document.write(arr4[i]+"<br/>");
			}

11.JavaScript中选择结构和while,do-while,for与Java中用法一样.
注意:
JavaScript中没有foreach结构,但是有for-in
11.1:JavaScript中,for-in遍历数组,遍历的是数组索引;for-in遍历对象,
遍历的是对象的属性

/*//声明一个数组
			var arr1=["耳朵到","眼到","心到"];
			//for-in遍历数组,遍历的是数组索引
			for(var i in arr1){
				document.write(i+"\t"+arr1[i]+"<br/>");
			}*/
			
			//for-in遍历对象,遍历的是对象的属性
			var ob={"name":"张三","age":18};
			for(var i in ob){
				document.write(i+"<br/>");
			}

12.函数:相当于java中方法.
12.1:自定义普通函数:function 函数名(参数1,参数2…){
[return 返回结果;]
}

eg://第一种:声明无参无返回值的方法
			function show1(){
				alert("这是一个无参无返回值的方法");
			}
			
			//第二种:声明有参无返回值的方法
			function show2(a,b){
				alert("这是一个有参无返回值的方法,方法的参数为:"+a+","+b);
			}
			
			//第三种:声明无参有返回值的方法
			function show3(){
				var word="这是一个无参有返回值的方法";
				return word;
			}
			
			//第四种:声明有参有返回值的方法
			function show4(a,b){
				var word="这是一个有参有返回值的方法,参数为:"+a+","+b;
				return word;
			}

12.2:自定义匿名函数:var 变量名= function(参数1,参数2…){
[return 结果;]
}

eg://第五种:声明匿名函数
			var a=function(c,d){
				var word="这是一个匿名函数,参数为:"+c+","+d;
				return word;
			}

12.3:函数的调用:
12.3.1:普通函数调用:函数名(实参1,实参2…);
var 变量=函数名(实参1,实参2…);
12.3.2:匿名函数的调用: 变量名(实参1,实参2…);

eg:<input type="button" value="调用无参无返回值的方法" onclick="show1()"/>
			<br />
		<input type="button" value="调用有参无返回值的方法" 
				onclick="show2('孙星',18)"/><br />
		<input type="button" value="调用无参有返回值的方法" 
				onclick="alert(show3())"/><br />
		<input type="button" value="调用有参有返回值的方法" 
			onclick="javascript:alert(show4(11,12))"/><br />
		<input type="button" value="调用匿名函数" 
			onclick="alert(a(17,18))"/><br />
12.4:系统函数:
isNaN():判断变量是否是数字,不是数字就返回true,反之就返回false
		  eg://isNaN():判断变量是否是数字,不是数字就返回true,反之就返回false
			var num1="abc";
			var num2=11;
			var num3="11";
			document.write(isNaN(num1)+"<br/>");//true
			document.write(isNaN(num2)+"<br/>");//false
			//注意:isNaN()只判断变量的值,与数据类型无关
			document.write(isNaN(num3)+"<br/>");//false
			
	parseFloat():将变量转换为带小数的数字
	parseInt();将变量转换为整数的数字
			eg://parseFloat():将变量转换为带小数的数字
			//parseInt();将变量转换为整数的数字
			var num4="11";
			var num5="3.14";
			//将两个变量进行字符串的连接作用
			document.write(num4+num5+"<br/>");
			//进行数学运算
			document.write(parseInt(num4)+parseFloat(num5)+"<br/>");
			document.write(parseInt(num5)+"<br/>");//3
			document.write(parseFloat(num4)+"<br/>");//11

	eval();可以js字符串转换js代码执行
		 eg://eval();可以js字符串转换js代码执行
			var ob1="{'name':'胡青松','age':18}";
			document.write(typeof ob1);//string
			document.write("<br/>");
			var ob2=eval("("+ob1+")");
			document.write(typeof ob2);//object
			document.write("<br/>");
			document.write(ob2.name+","+ob2.age);
			document.write("<br/>");