java Script 总结

一.js入门
1.1 介绍

​ JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程,多范式的动态脚本语言,并且支持面向对象,命令式和声明式(如函数式编程)风格。

1.2 主要功能
  1. 嵌入动态文本于HTML页面。
  2. 对浏览器事件做出响应。
  3. 读写HTML元素
  4. 在数据被提交到服务器之前对数据进行校验
  5. 检测访客的浏览器信息。控制cookies,包括创建和修改等。
  6. 基于Node.js技术进行服务器端编程。
二. JS的使用方式
1.1 两种方式
1.1.1方式1:内部方式

​ 在页面中使指定script标签书写js代码

​ //:单行注释

​ /多行注释/

1.1.2方式2:外部方式

​ 在js文件夹下新建一个.JS文件,书写JS代码。

​ 在当前html页面导入指定JS文件

​ script标签(有开始,有结束)src 属性:js/xx.jsp文件

​ 好处:html代码和js分离了(前端开发工程师:需要使用外部方式)

1.2 js常用函数
1.2.1 向浏览器输出内容

​ document.write(“hello,js!”);

1.2.2 在浏览器中控制台打印内容

​ console.log(“hello,javascript!”);

1.2.3 弹对话提示框

​ window.alert(“hello,javacript!”);

1.3 js中变量以及数据类型
1.3.1 js中变量如何定义的:

​ (1)用var来定义变量,var可以定义任何类型(js中创建对象也是var)

​ var可以省略不写(不建议)

​ (2)定义变量,是可以重复定义变量,后面的是会将前边的值覆盖掉(弱类型语言)

​ java语言:

​ int a=10;

​ int b=20;重复定义

​ (3)查询数据类型:使用函数typeof(变量名)

​ 基本数据类型:

​ 无论是整数还是小数,在js中都属于number类型,内置对象(引用 类型):Number

​ 无论是字符串还是字符,js中都属于string类型,内置对象:String

​ true/false,js中属于Boolean,内置对象:Boolean

​ object:内置对象:模板对象:Object

​ undefined:无意义,因为当前这个变量没有被赋值(未定义变量)

​ (4)js中的数据类型划分是通过值来确定的!

1.4 Js运算符
1.4.1 运算符
		算术运算符
			+,-,/,%
		赋值运算符
			=
		比较运算符
			<,>,<=,>=,==,!=
		逻辑运算符
			js中
				&&:  有false,则false
				 
				 ||: 有true,则true
				 
			  逻辑非: 非true,则false;非false则true
		三元运算符
			(表达式)? 执行true的结果:执行false的结果;
		 <script>
			 var a = 3 ;  //将3赋值给Number类型变量a
			 var b = 4;
			 document.write("sum:"+(a+b)+"<br/>") ; 
			 document.write("sub:"+(a-b)+"<br/>") ; 
			 document.write("mul:"+(a*b)+"<br/>") ; 
			 document.write("div:"+(a/b)+"<br/>") ; 
			 document.write("%:"+(a%b)+"<br/>") ; 
			 document.write("<hr/>") ;
			 
			 var c = 1 ;
			 console.log(true+c) ; 
			 console.log(1+false) ; 
			 //true和false在js中代表两个常量:1,0  (弱类型语言体现)
			 document.write("<hr/>") ;
			 //比较运算符
			 console.log(a>=b) ;
			 console.log(a==b) ;
			 console.log(a<=b) ;
			 console.log(a!=b) ;
			  document.write("<hr/>") ;
			  
			  //逻辑运算符
			  console.log((++a)==3 && (--b)==4) ;
			    document.write("<hr/>") ;
				
				//三元运算符
				var age = 18 ;
				document.write((age>=18)?"成年人":"未成年人") ;
		 </script>
1.5 流程语句
1.5.1 选择语序结构

​ 选择语序中的switch语句中case语句后面在js中既可以是常量也可以是变量

<script>
			  var week = 3 ;
			  var b = 3 ; //变量
			  switch(week){
			  case 1 :
					document.write("星期一") ;
					break ;
			  case 2:
					document.write("星期二") ;
					break ;
			  case b: //变量
					document.write("星期三") ;
					break ;	
			  case 4:
					document.write("星期四") ;
					break ;	
			  case 5:
					document.write("星期五") ;
					break ;
			  case 6:
				document.write("星期六") ;
				break ;
				
				case 7:
							document.write("星期日") ;
							break ;		
			 default:
				   document.write("非法数据") ;
				   break;		
			  }	  
			document.write("<hr/>") ;

​ js中—for-in 语句,很类似于java中的foreach语句:增强for

​ for(var 变量名 in 对象名称){

​ 使用这个变量名 对象名称[变量名]访问属性

​ }

​ js中:for-in是用来给自定义对象使用,遍历自定义对象中的属性

var arr = [10,20,30,40] ;
			//普通for循环
			for(var i = 0 ; i < arr.length ; i++){
				document.write(arr[i]+"<br/>") ;
			}
			document.write("<hr/>") ;
			for(var i in arr){
				document.write(arr[i]+"&nbsp;") ;
			}
			
			//定义对象
			function Person(name,age,address,email){  //类似于 java中有参构造
			//追加属性
				this.name = name ;
				this.age = age ;
				this.adress=address;
				this.email = email;
				
			}
			document.write("<hr/>") ;
			
			//创建对象
			var p = new Person("高圆圆",41,"西安市","gaoyuayuan@163.com") ;
			//for-in
			for(var i in p){
				document.write(p[i]+"<br/>") ;
			}
1.6 js中的函数
1.6.1 js中定义函数

​ js中的函数类似于java中定义方法(功能)

​ js中定义函数:

​ function 函数名称(形参列表){

​ 可以写return语句,也可以不写}

1.6.2 js中函数调用

函数调用
单独调用(函数里面没有return语句)
函数名称(实际参数) ;
赋值调用(有return语句)
var 变量名 = 函数名称(实际参数);

1.6.3 js中定义函数的注意事项

​ (1)形式参数列表中不能携带数据类型:var可以定义任何类型(弱类型语言)

​ 在java中,形式参数必须携带

​ public static int add(int a,int b)

​ (2)函数中可以不用书写return语句

​ (3)js中不存在函数的重载,如果后边的方法名和前边相同,后边的会将前边覆盖掉

​ 如果函数是形式参数个数大于实际参数个数,调用函数时,函数依然可以执 行由于某个形参没有被赋值,调用结果:NaN(没有意义)。

​ 如果形式参数个数小于实际参数个数,调用函数依然执行,将多余实参去 掉,进行计算!

​ (4)在函数中有一个默认数组:arguments

​ 作用就是将实际参数赋值形式参数:

​ java中的main方法

​ public static void main(String[] args){}

		 定义求两个数据之和的函数
			function add(var a,var b){
			
		   function add( a, b){
		   			  var result = a + b;
		   			  document.write("两个数据之和是:"+result) ;
		   			  // return result ;
		   }
		   function add(a,b,c){//a =10 ,b =20 ,c = 30
				//alert(arguments.length) ;
				for(var i = 0 ; i < arguments.length; i ++){
					alert(arguments[i]) ;
				}
			   var result = a+ b+ c;
			    document.write("数据之和是:"+result) ;
		   }
		//调用
		//单独调用
		add(10,20) ;
1.7 js中的自定义对象
1.7.1 分类

​ 内置对象:

​ js本身存在:Array,Date,String,Number,Boolean,正则表达式

​ 自定义对象:

​ (1)类上Java中的有参构造方法

​ 定义一个对象

​ function 对象(属性列表){

​ 追加属性…
​ 追加方法…

​ }

​ 创建对象 var 对象名= new 对象(实际参数列表) ;

1.7.2 定义对象
function Person(name,age){
				 //追加属性
				 this.name = name ;
				 this.age = age ;
				 //追加方法
				 this.play=function(){
					 alert("玩足球") ;
				 }
			 }
			 
			 //创建对象
			 var p = new Person("赵又廷",41) ; //给属性赋值
			 
			 //for-in遍历属性
			/* for(var i  in p ){
				 document.write(p[i]) ;
			 } */
			 //访问属性
			 document.write("name是"+p.name+"<br/>") ;
			 document.write("age是"+p.age+"<br/>") ;
			 //访问方法
			 p.play() ;
			 
			 document.write("<hr/>") ;
1.7.3 方式二
//定义工人对象:Worker  :类上java中无参构造
			 function Worker(){
				 
			 }
			 
			 //无参构造方式创建对象
			 var w = new Worker() ;
			 //对象名w追加属性或者追加方法
			 w.name = "杨德财" ;
			 w.age = 27 ;
			 w.play=function(){
				 document.write("喜欢玩代码...") ;
			 }
			 
			 //访问属性
			 document.write("name是"+w.name+"<br/>") ;
			 document.write("age是"+w.age+"<br/>") ;
			 //访问方法
			 w.play() ;
			
			document.write("<hr/>") ;
1.7.4 方式三

​ 直接创建对象 Object :代表任意js对象(模板对象)

var s = new Object();
			//追加属性
			s.name = "高圆圆" ;
			s.age = 41 ;
			//追加功能
			s.speak=function(){
				document.write("说英语") ;
			}
			
			//访问属性功能
			//访问属性
			document.write("name是"+s.name+"<br/>") ;
			document.write("age是"+s.age+"<br/>") ;
			//访问方法
			s.speak() ;
			document.write("<hr/>") ;
 			
1.7.5 方式四

​ 字面值的方式 json字符串(后期是一个重点)

			json解析跟xml解析	
						xml解析:dom解析(面向对象方式)/sax解析(基于事件方式)
						
							解析速度慢
							
				json:解析速度快 ,格式是一种js语法 (简单直观)	
						
						fastJson 工具
						Gosn
						jsonlib
						jackson---springmvc提供的一种内置的插件

​ 格式

			简单格式
			  {
				  
				  "key1":"value1",
				  "key2":"value2",
				  ...
			  };
			  
			  //复杂格式
			  [
				  "students",
				  {
					  "sname":"张三",
					  "age":20,
					  "address":"西安市",
				  },
				  {"sname":"李四","age":25,"address":"咸阳市"},
				  {"sname":"王五","age":30,"address":"北京市"} 
			  ];
			*/
		   var student = {
				//追加属性
				"name":"耿明刚",
				"age":23,
				"address":"南窑国际",
				"email":"gengminggang@163.com",
				//追加功能
				"code":function(){
					alert("日日夜夜coding...") ;
				}
			   
		   } ;
			 
			 
			//调用属性
			document.write("姓名是:"+student.name+"<br/>") ;
			document.write("年龄是:"+student.age+"<br/>") ;
			document.write("住址是:"+student.address+"<br/>") ;
			document.write("邮箱是:"+student.email) ;
			
			student.code() ;
1.8 js的内置对象之String

1.8.1 String对象的方法

			charAt(var char):返回指定索引处的字符
			indexOf(var char);查询当前字符第一次在字符串中出现的角标值
			fontcolor(指定颜色标记):给字符串设置字体颜色
			spilt(字符串):通过指定的字符串将当前大串拆分成字符串数组
			substring(start, end):截取功能
		 //如何创建字符串对象
			 //方式1:var对象名 = new  String("xx") ; 
			// var s1 = new String("hello") ;
			// var s2 = new String("hello") ;
			
			var s1 = "hello" ;
			var s2 = "hello" ;
			 document.write((s1==s2)+"<br/>") ;
			 //== 比较的是地址值是否相同  new 对象:都分别需要在堆内存中开辟空间
			 //如果常量赋值:直接在常量池中,有这个值,直接返回地址值;没有这个值,开				辟常量池内存空间
			 //valueOf():比较的内容是否相同
			 document.write((s1.valueOf()==s2.valueOf())+"<br/>")
			 document.write("hr/>") ;
			 
			 //定义一个字符串
			 var str = "helloworldjavaEE" ;
			 document.write("charAt():"+str.charAt(4)+"<br/>") ;
			 document.write("indexOf():"+str.indexOf('a')+"<br/>") ;
			 
			 //substr(beginindex,length):从指定位置开始截取指定长度
			 document.write("substr():"+str.substr(5,5)+"<br/>") ;
			 
			 //包前不包后(endindex的位置取不到的,endindex-1)
			 document.write("substring():"+str.substring(5,9)+"<br/>") 				;
			 //给字符串添加颜色属性
			 document.write("fontcolor():"+str.fontcolor("red")+"				<br/>") ;
			 
			 var classes = "JavaEE-Php-Python-test-Web-C" ;
			 //分割功能
			 var stryArray = classes.split("-") ;
			 //遍历
			 for(var i = 0 ; i < stryArray.length ; i ++){
				 alert(stryArray[i]) ;
 			 }
1.9 Date内置对象
1.9.1 js的内置对象Date

​ 创建对象

​ var 对象名=new Date();

<script>
			 
			//创建日期对象
			 var date = new Date() ;
			 //alert(date) ;
			 
			 //常用的方法:获取年份
			 //getYear():并不是完整的年份.而是当前年份距离1900 年差值
			 //getFullYear():获取
			 var year = date.getFullYear();
			 document.write(year+"年") ;
			 
			 //获取月份:getMonth():0-11之间的整数
			 
			 var month = date.getMonth()+1 ;
			 document.write(month+"月") ;
			 
			 //获取月中的每一天:getDate()
			 var month_day = date.getDate() ;
			 document.write(month_day+"日&nbsp;&nbsp;") ;
			 //getHourer():一天中的小时
			 		document.write(date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()) ;
			// var hour = date.getHours() ;
			 //alert(hour) ;		 
		 </script>
1.9.2 网页定时器:

​ 窗口对象,顶级对象可以不写

​ window.setInterval(“任务(),毫秒数”):重复执行。每经过毫秒数后执 行定时任务

​ window.setTimeOut(“任务()”,“毫秒数”):经过毫秒数后执行一次任务

<body>
		<h3>网页时钟</h3>
		当前系统时间是:<span id="spanTip"></span>
	</body>
	<script>
		function myTask(){
			//需要创建Date对象,拼接日期和时间
			var date = new Date() ;
			var dataStr = date.getFullYear()+"-"+(date.getMonth()+1)+"-"
			+date.getDate() 
			+"&ensp;&ensp;"+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds() ;
			
			//获取id="spanTip"的标签对象
			var spanObj = document.getElementById("spanTip") ;
			//设置innerHTML属性		
			spanObj.innerHTML = "<strong>"+dataStr+"</strong>" ; //给span设置文本内容
		}
	
		//开启定时器
		setInterval("myTask()",1000) ;//每经过1秒执行这个任务
		
	</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值