新手入门之JS

一、什么是Javascript?

JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。
它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网页增加动态功能。

二、Javascript的使用方式

(1)内部方式:

在head标签体中或者body下面书写script标签,type默认不写.(省略 脚本类型"text/jscript" 或者"text/javascript").

(2)外部方式:

导入外部js文件.scr属性=“js文件地址”

二、变量的定义

什么是变量?
在程序的执行过程中,其值在不断发送改变的量!
什么是变量?

js定义变量的注意事项:

  (1)定义变量的三要素 :var  变量名  = 初始化值;
  (2)定义所有的变量都是var,而且var可以省略不写!
  (3)js中,变量可以重复定义的,后面的值将前面的值覆盖!
	//javavscript:是一个弱类型(语法结构非常不严谨)
	//java语言:后端语言的一种强类型语言(语法结构非常严谨)

jsjs变量的命名规则:

一个变量只能由 字母(a-z, A-Z) 数字(0-9) 下划线(_) 美元符($) 组成 
一个变量不能由 数字 开头 
变量严格区分大小写 
不要使用关键字或保留字
基本数据类型划分:
首先,了解查看一个变量的数据类型的函数:typeof(变量名)
基本数据类型划分:           
	    1)无论是整数还是小数,数据类型number类型
		2)布尔类型 :boolean :用于逻辑判断:要么true(真) false(假)
		3)字符串类型:string :无论变量值"字符串"还是'字符':结果都是string
		4)未定义类型:undefined(没有意义的)
		引用数据类型:
		4)object类型:对象类型

三、Javascript的运算符

1、算术运算符
			基本的算术运算符: (js中/不会默认取整,而java语言默认取整!)
				+,-,*,/,%模(求余)
			扩展的算术运算符	
				++或者--
				单独使用:
					无论++或者--在数据的前面还是后面都是对当前这个值进行自增1或者自减1
				参与运算:
					1)++或者--在数据的前面,先自增或者自减,然后运算
					2)++或者--在数据的后面,先运算在自增或者自减

   		 例子://参与运算使用:++或者--在数据的前面
			//var m = ++x ;//++3 = 4--->赋值给m,m结果4
			//var n = --y ;//--4= 3 --->赋值给n,n结果3
			
			//参与运算使用:++或者--在数据的后面
			var m = x ++ ;//将x先赋值给m,m的值3 ,x变量在自增3++ 4
			var n = y -- ;//将y先赋值给n,n的值4 ,y变量自减 4-- 3
2、赋值运算符
			基本的赋值运算符 就是"="
			var  变量名 =  值;
			将值赋值给变量名 
注意事项:
	"="不写成==		
		扩展的赋值运算符:
					+=,-=,*=,/=,%=
			将扩展的赋值运算符左边的变量和右边数据值操作后,
			在赋值给左边的变量	;
		var a = 10 ;		
		a += 20 ;//拿a+20在赋值给a 等价于 a = a+20 ;
3、逻辑运算符
	  逻辑运算符的基本符号:
			逻辑单与&:并列关系,多个条件同时满足
					有0则0(有false则false,有一个满足不成立!)
			逻辑单或|:多个条件只要满足一个即可成立
					(有1则1;有true则true,有一个满足则成立)
				
			逻辑异或^:
					相同则为false(0)
					不同则为true(1)
					
					简单记:
						男女关系
						男女  女男  : true (1)
						男男  女女  : false (0)
			
			逻辑非! :非true则fasle,非fasle则true
					偶数个非是它本身
逻辑双与& (有false则false :和逻辑单与& 一样:共同点
逻辑双或||:有true则true
4、三元运算符
  运算符 带有一定逻辑判断
	       (表达式)?执行ture的结果:执行false的结果;

四、流程语句

4.1选择结构语句之if语句

if语句格式1:
if(表达式){
			 语句;
		 }
		 执行流程:如果表达式成立,则执行语句;否则不执行!
if语句格式2
		 场景:针对两种情况判断
		 if(表达式){
				语句1;
		 }else{
				语句2;
		 }
		 执行流程:
				如果表达式成立,则执行语句1,否则,执行语句2;
if语句格式3:应用场景:针对多种情况判断
		  if(表达式1){
			 语句1;
		 }else if(表达式2){
			 语句2;
			 ...
		 }else{
			 
			 //上面都不匹配,执行else中语句
			语句n;
		 }
 流程:
		先判断表达式1是否成立,成立则执行语句1,
		如果不成立,继续判断表达式2是否成立,成立,则执行语句2
		如果都不成立,最终执行else中的语句;

4.1.1if语句和三元的区别

if格式2的范围大,它是流程控制 语句,它不仅里面可以使用
				赋值的方式去接收变量,也可以去使用输出语句document.write(xx);
				
				而三元运算符,是运算符号,只能操作具体的数据值,要么string/number...
				不能在里面嵌套使用输出语句document.write(xx)
				
				
				
				如果需求能够使用三元实现的,一定能够使用if格式2实现
				if格式2能实现的,不一定能使用三元
			
			*/
		
		
			//需求: 键盘录入一个数据,判断这个数据是否是偶数
			//用if格式2实现
			var num = prompt("请您输入一个数据:") ;
			num = parseInt(num) ;
			
			//var str = "" ;
			if(num%2==0){
				document.write(num+"是偶数") ;
			//	str = "是偶数"
			}else{
				document.write(num+"是奇数") ;
			//	str = "是奇数"
			}
			
			document.write("<hr/>") ;
			
			//document.write((num%2==0)?((document.write(num+"是偶数")):((document.write(num+"是奇数")));
			document.write((num%2==0)?"偶数":"奇数") ;

4.2选择结构语句之switch语句

switch格式
				switch(表达式或者某个变量){
				case 值1:
						语句1;
						break ; 
				case 值2:
						语句2;
						break ;
				...
				...
				default:
					语句n;
					break ;		
				}
			执行流程:
				使用switch后面的变量值和case的值1进行匹配,
				如果匹配,执行语句1,break语句结束;
				如果值1不匹配,判断case后面的值2是否和switch后面的值进行匹配
				如果匹配,则执行语句2,break语句结束;
				如果也不匹配,...上面都不匹配,执行default的语句n,遇见break语句结束!
!!switch语句的注意事项:
	javascript中的switch
			 1)switch语句中case语句后面的值可以是常量,也可以是变量!
			 2)如果case语句中没有携带break语句,就会造成一种现象"case穿透"(灵活运用)
			 3)switch语句的结束条件: (重点)
					    1)遇见break结束 (break:跳转控制语句  中断/结束!)
						2)程序默认执行到末尾
			
			 4)default语句可以在switch中的任何位置,不影响switch的执行流程
			    	如果default在语句中,break不要省略
			   		如果default在语句的末尾,break是可以省略的(建议不要省略!)

五、循环语句

5.1 for循环的格式

*for(初始化语句;条件判断语句;控制体语句){
				循环体语句;
				}
			执行流程:
			1)初始化语句对变量进行初始赋值(执行一次即可)
			2)判断条件语句是否成立,如果成立,则执行循环体语句
			3)执行控制体语句(步长语句)这个变量自增或者自减
			4)判断条件是否成立,成立,继续执行循环体语句,
			再次回到3)继续操作....
			5)当条件表达式不成立,循环结束!
			
			循环也称为"遍历"			 
5.1.1 for循环求和思想
/**
			 * 求和思想:
			 * 		0 + 1  =1 
			 *              1   +  2  = 3 
			 *                          3   + 3 = 6 
			 * 									  6 + 4 = 10
			 * 											  10 + 5 = 15
			 *                                         .....	
			 * 
			 *  两个加数:
			 * 		前面这个加数:从0开始, 记录每一次求和的结果
			 * 		后面的这个加数:就是1-10之间的每一个数据
			 * 
			 * 操作:
			 * 	1)定义最终结果变量sum:0开始
			 *  2)循环:将范围的内的数据一一获取到: 1-10
			 * 		2.1)循环中的循环体语句
			 * 				sum = sum + 当前循环的变量 
			 * 			简写sum+=变量
			 */
			 //求1-100之间的和
			var sum2 = 0 ;
			for(var x = 1 ; x <=100 ;  x++){
				sum2 = sum2 + x ;
			}
			document.write("1-100之间的和是:"+sum2+"<br/>") ;
			document.write("<hr/>") ;
			//求1-100之间的偶数和
			var sum3 = 0 ;
			for(var x = 1 ; x <=100 ;  x++){
				//获取到1-100的数据
				if(x % 2 ==0){
					sum3 = sum3 + x ;
				}
			}
			document.write("1-100之间的偶数和是:"+sum3+"<br/>") ;
			
			//求8的阶乘!  8*7*6*5*4*3*2*1
			document.write("<hr/>") ;
			
			//定义结果变量
			var jc = 1 ;
			for(var j = 2 ; j <= 5 ;j++){//2 3 4
				jc *= j ; //jc =1* 1 
							 //jc = 1* 2
							//jc = 2 * 3
							//jc = 6 *4
			}	
			document.write("5的阶乘是:"+jc+"<br/>") ;
			
			
			
			
			
			 
			/*
				n!=n*(n-1)!
				5!=5*4*3*2*1
				
				求阶乘思想和求和思想相同
				定义结果变量 jc = 1;
				for(var x = 1 ; x <=5 ;x++){
					jc*=x ;  //jc = jc * x = 1 * 2
				}
			
			*/
5.1.2 for循环统计思想
//需求:统计水仙花数有多个?
		/**
		 * 统计思想:
		 * 	1)先定义一个统计变量:初始化0
		 *  2)水仙花-3位数 明确范围,循环思想
		 *  3)计算每一个位的数据本身
		 * 	4)当前这个数据就是 个位的立方+十位的立方+百位的立方 ,满足这个条件
		 * 		4.1) 统计变量++
		 *  5)输出统计变量
		 */
		var count = 0 ;
		for(var i = 100 ; i <=999 ; i++){
			//定义三个变量,个位,十位,百位
			var ge = i % 10 ;
			var shi = (Math.floor(i /10)) %10 ;
			var bai = (Math.floor(i/10/10)) %10 ;
			
			if( i == (ge*ge*ge+shi*shi*shi+bai*bai*bai)){
				count ++ ; //++
				
				document.write("第"+count+"次的水仙花是:"+i+"<br/>") ;
				
				
			}
		}
		document.write("水仙花数共有:"+count+"个<br/>") ;

5.2 while循环的格式

/**
			 * 通用格式:
			 * 		初始化语句;
			 * 		while(条件表达式){
				  
						循环体语句;
						控制体语句;(步长语句)
					}
			 * 
			 * 执行流程:
			 * 	1)初始化语句先执行,进行赋值
			 *  2)判断条件表达式是否成立,成立,执行循环体语句,执行控制体语句
			 *  3)继续回到2)过程...如果条件不成立,结束!
			 * 
			 */
5.2.1 while循环求和和统计思想
/*
				使用while循环完成
					1)1-10之间的和
					2)1-100之间的偶数和
					3)求5的阶乘
					4)输出所有的水仙花数
					5)统计水仙花的个数
			
			*/
		   //最终结果变量
		   var sum = 0 ;
		   //初始化语句
		   var i = 1 ;
		   while(i<=10) {
			   sum += i ;
			   i++ ;
		   }
		   document.write("1-10之间的和:"+sum+"<br/>") ;
		   
		   var sum2 = 0 ;
		   //初始化语句
		   var x = 1 ;
		   while(x<=100) {
			   if(x % 2 ==0){
				   sum2 +=x ;
			   }
			   x ++;
			  
					  
		   }
		   document.write("1-100之间的偶数和:"+sum2+"<br/>") ;
		   document.write("<hr/>") ;
		
		   var i =100 ;
		   while(i<1000){
			   //定义变量
			   var ge = i % 10 ;
			   var shi = (Math.floor(i/10)) %10 ;
			   var bai = (Math.floor(i/10/10)) %10 ;
			   
			   if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){
				   document.write("水仙花数是:"+i+"<br/>") ;
			   }
			   
			   i ++ ;
		   }
		   
		   document.write("<hr/>") ;
		   
		   
		   //统计变量
		   var countNumber = 0 ;
		   var k =100 ;
		   while(k<1000){
		   			   //定义变量
		   			   var ge = k % 10 ;
		   			   var shi = (Math.floor(k/10)) %10 ;
		   			   var bai = (Math.floor(k/10/10)) %10 ;
		   			   
		   			   if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==k){
		   				   
						   countNumber ++ ;
						   document.write("第"+countNumber+"次,水仙花数是:"+k+"<br/>") ;
		   			   }
		   			   
		   			   k ++ ;
		   }
		   document.write("水仙花共有:"+countNumber+"个") ;

5.3.2 for和while的区别

/**
			 * for循环和while的区别?
			 * 
			 * 1)格式不同
			 * for(初始化语句; 条件表达式;控制体语句){
				    循环体语句;
			   }
			   初始化语句;
			    while(条件表达式){
					循环体语句;
					控制体语句;
				}
				
				2)内存角度考虑:优先使用for
				for循环结束,里面的变量就会从内存中释放掉,节省内存资源
				while循环结束,依然能访问这个变量,初始化语句在外面定义的

				3)从应用场景:
					明确循环次数使用for
					不明确循环次数使用while
					举例:
						键盘录个字符串:给3次机会,判断用户是登录成功
						
				开发中,优先使用for循环		
			 */

5.4 死循环

在这里插入代码片

5.4.1 死循环的两种格式以及练习

/**
			 * 利用死循环可以完成一些事情
			 * for的死循环
			 * 	for(;;){
				 循环体语句
				 
				 while(true){
					 完成逻辑
					 产生一个随机数
					 键盘录入数据,
					 判断数据大了,还是小了
					 如果相等,退出循环  break ;
				 }
			 }
			 */
			/* for(;;){
				console.log("for循环的死循环..") ;
			} */
			
			/* while(true){
				console.log("helloworld") ;
			} */
			
			
			//产一个随机数:javascript提供内置对象Math
			//有一个函数:Math.random( ) :产生[0,1) 之间的数据 (小数)
			
			/* for(var i = 0 ; i < 9 ; i++){
				var number = Math.random() ;
			    document.write(number+"<br/>") ;
			} */
			
			//10个 1-100之间的随机数
			/* for(var i = 0 ; i < 9 ; i++){
				var number = (Math.floor(Math.random()*100 +1));
			    document.write(number+"<br/>") ;
			} */
			
			
			//猜数字游戏
			//产生一个1-100之间的随机数
			var num = (Math.floor(Math.random()*100 +1))
			//alert(typeof(num)) ;
			
			//定义统计变量
			var count = 0 ;
			
			//当不明确循环次数,都是while循环
			while(true){
				
				//统计变量++
				count ++ ;
				
				//键盘录入
				var guessNum = prompt("请您输入一个数据:") ;
				/* if(guessNum =="" || guessNum == " "){
					alert("请输入数值类型的数据") ;
				} */
				
				//string--number
				guessNum = parseInt(guessNum)  ;
				
				//如果猜的数字大于随机数
				if(guessNum > num){
					alert("您要猜的"+guessNum+"大了") ;
				}else if(guessNum < num){
					alert("您要猜的"+guessNum+"小了") ;
				}else{
					alert("恭喜您,第"+count+"次,猜中了") ;
					//结束循环
					break ; //中断
				}
			}
			

5.5 for和while循环的嵌套

5.5.1 for循环的嵌套1

/*
			for(初始化语句1;条件表达式1;控制体语句1){
				//循环体:for循环
				for(初始化语句2;条件表达式2;控制体语句2){
					循环体语句;
				}
			}
	*/
	练习:
	//打印m行,n列的*形
   for(var i = 0 ; i < m; i++ ){//0,1,2,3  外层:行
   	   for(var j = 0 ; j < n; j ++){ //0,1,2,3,4 内存:列
   			document.write("*") ;
   	   }
   	   document.write("<br/>") ;
   }

5.5.2 关键字

[1]关键字 break:
				 * break:中断,结束的意思
				 * 不能单独使用
				 * 两个场景中使用:
				 * 	1)switch语句,本身格式就携带break
				 *  2)循环语句中使用
				//break ; 不能单独使用
		/**例子:
		for(var x = 0;x<10;x++){
					//判断
					if(x == 3){
						break ;//中断循环(结束循环)
					}
					document.write(x+"<br/>") ;
				}
	[2]关键字 continue:
			 * continue:继续的意思(结束当前循环,立即进入下一次循环)
			 * 不能单独用
			 * 不能脱离循环语句(loop)中使用!
			 * 场景:
			 * 	网络聊天室:
			 * 		功能:
			 * 			上下线提醒
			 * 
			 * 张三已经上线了,提示"李四上线了"  
			 *                  "王五上线了",不能提示自己上线了  (当如果是张三,continue)
			 * 			李四,王五上线
			 * 
			 */例子:
			//continue ;
			for(var i = 0 ; i < 10 ; i++){
				if(i==3){
					continue ;//结束当前这个循环,立即进入下一次循环
				}
				document.write(i+"<br/>") ;
			}

          
          
         [3]关键字 return:
            
					return 一般在函数(方法中使用)
					return:结束一个函数(方法),或者程序
					不能单独用!
				*/
			   /* document.write("程序开始了...<br/>") ;
			   for(var i = 0 ; i < 10 ; i++){
				   if(i == 3){
					   break ;
					   //return;//Illegal return statement 非法return语句
				   }
				   document.write(i+"<br/>");
			   }
			   document.write("over<br/>") ; */
			   
			   function returnDemo(){
				   document.write("程序开始了...<br/>") ;
				   for(var i = 0 ; i < 10 ; i++){
					   if(i == 3){
						   //break ;
						   //return;//Illegal return statement 非法return语句(不能单独用)
					       return ; //函数结束
							
					   }
					   document.write(i+"<br/>");
				   }
				   
				   document.write("over<br/>") ;
			   }
			   
			   //调用函数
			   returnDemo() ;

六、函数

如何定义函数:

			在js中定义函数的格式
					function 函数名(参数名1,参数名2,....){
						完成的函数的逻辑
						return 结果; //返回结果
					}	
		调用函数:
				赋值调用:
				var 变量名= 	函数名(实际参数1,实际参数2..)

函数名以及变量名:遵循小驼峰命名法
//单个单词:字母全部小写
//多个单词:第一个单词全部小写,从第二个单词开始首字母大写,其余小写

6.1 函数使用的注意事项

			//1)定义函数的时候,形式参数上不能携带var
			//2)函数定义的格式不能省略{},否则不是一个函数,浏览器中js引擎是无法识别的
			//3)如果这个函数没有返回结果,那么赋值调用的是undefined(未定义)
			//4)无论任何语言中,有右括号的地方不能有分号,否则函数是没有"函数体",
				//没有函数体的方法是没有意义的

6.2 有返回结果的函数的使用

	//没有提示number类型
		//需求:键盘录入三个数据,定义函数,获取三个数据最大值
		/*
			完成函数定义的心里明确:
				1)这个函数有没有返回结果;
				2)考虑参数的数据类型以及参数个数
		*/
	   //定义函数
	   /**
		* function 函数名(形式参数1,参数参数2...){
				//三元/if语句
				return 最大值;
		}

6.3 函数的另一种格式

 需要定义函数:里面输出55列的** 
			 * 没有具体的返回结果,的函数定义的时候,
			 * 跟有返回结果的函数定义相同,在函数体中直接输出!
			 * 调用:
			 * 		单独调用
			 * 		函数名(实际参数1,...) ;
			 */
			var m = prompt("请输入行数:") ;
			var n = prompt("请输入列数:") ;
			m = parseInt(m) ;
			n = parseInt(n) ;
			
			//调用下面的函数
			//单独调用
			printStar(m,n) ;
			
			//定义打印*形的函数
			function printStar(m,n){ //两个参数 行,列
				for(var i = 0 ; i < m; i++){
					for(var j = 0 ; j <  n; j++){
						document.write("*") ;
					}
					document.write("<br/>") ;
 				}
			}
			

七、数组

7.1数组的创建

//创建一个数组
			
			//动态初始化:不给定元素内容,已知数组长度
			//固定的
			//创建一个数组对象,3个长度(3个元素)
			
			//格式:var 对象名 = new Array(长度) ;
			var arr = new Array(3) ;
			
			//数组的长度有一个属性:length
			//数组对象名.lengtg:获取长度
			alert(arr.length) ;
			
			//给arr数组分配:
			//数组的元素:数组名称[索引值(下标)]:索引值0开始
			arr[0] = 20 ;
			arr[1] = 10 ;
			arr[2] = 25 ;
函数的三种创建格式:
		var arr = new Array(3)
		alert(arr.length);
		
		arr[0]=10;
		arr[1]=20;
		arr[2]=30;
		document.write(arr[0]+"<br/>") ;
		document.write(arr[1]+"<br/>") ;
		document.write(arr[2]+"<br/>") ;
			document.write("<hr/>") ;
		for(var i= 0;i < 3;i++){
			document.write(arr[i]+"<br/>");
		}
		document.write("<hr/>") ;
		
		var arr2=[1,2,3,4,5];
		document.write("<hr/>") ;	
		
		document.write("[") ;
		for(var i=0;i<arr2.length;i++){
			if(i==)
		}

7.2什么是数组

			/**
			 * 数组:
			 * 		可以存储多个同一种类型元素的一个容器!
			 * 在javascript语言中,数组可以存储不同类型的元素,
			 * 但是开发中,数组存储的必须为同一类型的元素!
			 * 
			 * Js中本身就存在一个Array内置数组对象
			 * 固定格式:
			 * 		(动态初始化:不给定元素)
			 * 		var 数组名称 = new Array() ;//不指定长度
			 *      var 数组名称 = new Array(size); //指定数组长度
			 * 		(静态初始化:给定具体元素)
			 * 		var 数组名称 = new Array([元素1,元素2,...]) ;
			 * 		 可以简写为
			 * 			 var 数组名= [元素1,元素2,...] ;
 			 * 
			 * 数组的属性:length (长度)
			 * 		数组名称.length
			 * 
			 * 如何确定数组的元素
			 * 		数组名称[角标值或者索引值]
			 * 		索引值从0开始,数组的最大索引值=数组长度-1
			 * 		 
			 * 
			 * js(弱类型语言:语法以及结构都不严谨)中的数组:没有角标越界一说,它可以不断的给数组中追加元素!
			 */
			//方式1:var 数组名称 = new Array() ;//不指定长度
			//var arr = new Array() ;
			
			//方式2: var 数组名称 = new Array(size); //指定数组长度
			//var arr = new Array(4) ; //4个长度
			
			//方式3:var 数组名= [元素1,元素2,...] ;
			var arr = [55,11,22,33,44] ;
			alert(arr.length) ;
			/* arr[0] = 10 ;
			arr[1] = 20 ;
			arr[2] = 55 ;
			//再次赋值
			arr[3] = 45 ;
			
			arr[4] = 15 ; */
			alert(arr.length) ;
			
			//遍历:一一获取元素
			for(var i = 0; i < arr.length;i++ ){ //i表示索引值
				alert(arr[i]) ;
			}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值