第二周学习笔记

1.css定位属性

定位属性:是可以将元素按照定位的类型进行移动
				position:
	绝对定位(absolute)(如果是块标签设置,类似浮块)
	    相对使用根据该元素的祖先元素(父元素或父标签)进行移动,
	    如果当前元素没有父元素,就是针对body进行移动;
	相对定位:relative
		根据该元素原来的位置进行定位,(如果是块标签设置,还是占一行空间)
						
	固定定位
		fixed:根据父元素进行定位的一种方式
		特点:不会随着滚动条的滚动而滚动
		left:设置定位左边的距离
		top:设置定位上边的距离
列:
<style>
			#d1{
				border:1px solid #000 ;
				background-color: red;
				width: 150px;
				height: 150px;
				position: absolute;
				left: 100px;
				top: 100px;
			}
			#d3{
				width: 150px;
				height: 150px;
				border:1px solid #000 ;
				background-color: green;
				
				相对定位
				position: relative;
				left: 100px;
				top: 50px;
				
			}
			
			#adv{
				border: 1px solid #000;
				width: 302px;
				height: 300px;
				
				固定定位
				position: fixed;
				left: 430px;
				top: 130px;
			}
		</style>

2.javascript的使用方式

<script src="js/01.js"></script>
或者
在body或者head里面标签
<script></script>
document.write()向浏览器打印内容
window.alert()弹消息提示框 (window是浏览器窗口,顶级对象,可以省略)
console.log在浏览器的控制台输出内容

3.javascript的变量定义以及数据类型的划分

变量:在程序的执行过程中,其值在不断发送改变的量!
			
			js定义变量的注意事项
			1)定义变量的三要素 :var  变量名  = 初始化值;
			
			2)定义所有的变量都是var,而且var可以省略不写!
			3)js中,变量可以重复定义的,后面的值将前面的值覆盖!
			
			
			javavscript:是一个弱类型(语法结构非常不严谨)
			java语言:后端语言的一种强类型语言(语法结构非常严谨)
			
			查看一个变量的数据类型的行数:typeof(变量名)
			基本数据类型划分:
			1)无论是整数还是小数,数据类型number类型
			2)布尔类型 :boolean :用于逻辑判断:要么true(真) false(假)
			3)字符串类型:string :无论变量值"字符串"还是'字符':结果都是string
			4)未定义类型:undefined(没有意义的)
			引用数据类型:
			4)object类型:对象类型

4.关于+

字符串拼接符号
任何数据+字符串="新的字符串"
字符串+任何数据="新的字符串"
"helloworld"+'a' ="helloworlda"
"helloworlda"+1  = "hellworlda1"
'a':是单引号括起来,数据类型是string(字符串)
'a' +1 = "a1"
"5+5="+5 = "5+5=5"
"5+5=5"+5 = "5+5=55" 
"双引号括起来的"或者js中''--都是string字符串
字符串就是常量

5.js的算术运算符

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

6.赋值运算符

基本的赋值运算符 就是"="
	var  变量名 =  值;
	将值赋值给变量名 
		注意事项:
		"="不写成==		
	扩展的赋值运算符:
		+=,-=,*=,/=,%=
	将扩展的赋值运算符左边的变量和右边数据值操作后,在赋值给左边的变量;
		var a = 10 ;	
		a += 20 ;//拿a+20在赋值给a 等价于 a = a+20 ;

7.js的关系(比较)运算符

关系运算符:
	无论这个符号的连接表达式在怎么复杂,结果都是true/false
	<,>,<=,>=,==,!=
	注意事项:==不能写成=
	==,写成=,成赋值了(js不会把报错,var可以定义任何类型)

8.js的逻辑运算符

逻辑运算符的基本符号:
	逻辑单与&:并列关系,多个条件同时满足
	有0则0(有false则false,有一个满足不成立!)
	逻辑单或|:多个条件只要满足一个即可成立
	(有1则1;有true则true,有一个满足则成立)	
	逻辑异或^:
			相同则为false(0)
			不同则为true(1)
			简单记:
					男女关系
					男女  女男  : true (1)
					男男  女女  : false (0)
	逻辑非! :非true则fasle,非fasle则true
			偶数个非是它本身

9.逻辑双与&&和双逻辑或||

逻辑双与&&和||属于逻辑运算符的扩展运算符
	逻辑双与& (有false则false :和逻辑单与& 一样:共同点
	逻辑双或||:有true则true
	逻辑双与&&具有短路效果:左边的表达式如果false,则右边不执行!,可以提供运行效率!

10.三元(三目)运算符

这个运算符:带有一定逻辑判断
			(表达式)?执行true的结果:执行false的结果;
			
			表达式无论简单还是复杂,结果是boolean类型,true或者false
	需求:有两个变量,比较两个变量的最大值?
			定义两个变量
			var a = 10 ;
			var b = 25 ;
			(表达式)?执行true的结果:执行false的结果;
			var max = (a>b)?a:b ;
			document.write("两个数据的最大值是:"+max) ;
	需求:有三个变量,比较三个变量中的最大值?
			var x = 10,y = 35,z =20 ;//一行定义多个变量
			
			最常用的方式:采用中间变量的方式去操作
			1)将x和y进行比较,将它的结果给中间变量 temp
			var temp = (x>y)?x:y;
			2)将1)步的结果和z进行比较
			var max2 = (temp > z)?temp:z;
			document.write("max2:"+max2) ;
			console.log("max2:"+max2) ;

11.位运算符(扩展的符号)

位运算符:计算机在对数据进行计算的时候,
		需要将这些数据进行"补码"操作  
		(原码--反码---补码:有符号的数据表示法)
		考虑进制的概念:
		进制:就是数据进位一种的方式
		位与& :有0则0
		位或| :有1则1
		位异或^:相同则为0,不同则为1
		~:反码:全部按位取反,0变1,1变0

12.流程控制语句

顺序结构语句: javascript:代码由上而下依次加载
			选择结构语句:if/switch
			循环结构语句:for/while/do-while

13.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中的语句;
	程序写完测试 要考虑:
		1)边界数据是否正常
		2)范围内的数据是否可以
		3)测试错误数据是满足
面试题
if和三元的区别
if格式2的范围大,它是流程控制 语句,它不仅里面可以使用
	赋值的方式去接收变量,也可以去使用输出语句			      	document.write(xx);
	而三元运算符,是运算符号,只能操作具体的数据值,要么            string/number...
	不能在里面嵌套使用输出语句document.write(xx)
	如果需求能够使用三元实现的,一定能够使用if格式2实现
	if格式2能实现的,不一定能使用三元

14.js中定义变量的注意事项 (和Java中定义变量命名规范同理)

 javascript定义变量 (见名知意)
			 * 注意事项:
			 * 	1)变量名不能以数字开头
			 *  2)变量名不能有空格出现,以及特殊符号
			 *  3)不能是关键字 var/true/false...
			 *  4)可以是26个英文大小字母(不区分大小写)或者数字
			 *  5)可以有_或者$符号,他们可以开头

15.选择结构语句之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语句结束!
	javascript中的switch
		* 1)switch语句中case语句后面的值可以是常量,也可以是变量!
		 * 2)如果case语句中没有携带break语句,
		 * 就会造成一种现象"case穿透"(灵活运用)
		 * 3)switch语句的结束条件: (重点)
		 * 1)遇见break结束 (break:跳转控制语句  中断/结束!)
		 * 2)程序默认执行到末尾
		 *4)default语句可以在switch中的任何位置,不影响switch的执行流程
		 *如果default在语句中,break不要省略
		 *如果default在语句的末尾,break是可以省略的(建议不要省略!)

16.for循环

for循环的格式
		for(初始化语句;条件判断语句;控制体语句){
				循环体语句;
		}
			
		执行流程:
			1)初始化语句对变量进行初始赋值(执行一次即可)
			2)判断条件语句是否成立,如果成立,则执行循环体语句
			3)执行控制体语句(步长语句)这个变量自增或者自减
			4)判断条件是否成立,成立,继续执行循环体语句,
			再次回到3)继续操作....
			5)当条件表达式不成立,循环结束!
			循环也称为"遍历"
	嵌套
for(初始化语句1;条件表达式1;控制体语句1){
				//循环体:for循环
				for(初始化语句2;条件表达式2;控制体语句2){
					循环体语句;
				}
			}

17.while循环

通用格式:
		初始化语句;
		while(条件表达式){
			循环体语句;
			控制体语句;(步长语句)
			}
		执行流程:
			 1)初始化语句先执行,进行赋值
			 2)判断条件表达式是否成立,成立,执行循环体语句,执行控制体语句
			 3)继续回到2)过程...如果条件不成立,结束!

18.死循环的两种格式

 利用死循环可以完成一些事情
			 for的死循环
			 for(;;){
			 循环体语句
			while(true){
					 完成逻辑
					 产生一个随机数
					 键盘录入数据,
					 判断数据大了,还是小了
					 如果相等,退出循环  break ;
				 }
			 }
			 
			for(;;){
				console.log("for循环的死循环..") ;
			} 
			while(true){
				console.log("helloworld") ;
			} 

19.for循环和while的区别

	1)格式不同
		 for(初始化语句; 条件表达式;控制体语句){
			循环体语句;
			   }
			初始化语句;
			while(条件表达式){
				循环体语句;
				控制体语句;
			}
	2)内存角度考虑:优先使用for
	 		for循环结束,里面的变量就会从内存中释放掉,节省内存资源
	    	while循环结束,依然能访问这个变量,初始化语句在外面定义的
	3)从应用场景:
			明确循环次数使用for
			不明确循环次数使用while
				举例:
				键盘录个字符串:给3次机会,判断用户是登录成功					开发中,优先使用for循环

20.do-while循环

初始化语句;
		do{
			循环体语句;
			控制体语句(步长语句);
		}while(条件表达式) ;
			流程:
			初始化语句赋值
			执行循环体
			控制体语句进行自增或者自减
			判断条件是否成立,成立,继续执行循环体,不成立,结束!	
			它和for,while最大的区别:
			循环体至少执行一次!  
			(开发中,用的很少)
			底层源码使用多:js前端框架(Jqeury)
			后端语言:java语言(面向对象)
			集合/后面常用类的方法中见到源码:涉及到do-while

21.跳转控制语句

跳转控制语句之break
break:中断,结束的意思
		不能单独使用
		两个场景中使用:
		1)switch语句,本身格式就携带break
		2)循环语句中使用
		break ; 不能单独使用
for循环嵌套:
		break以前的语法:后面可以跟上标签语句
		给循环语句的前面起一个名字  名称:for()
		break 名称;
跳转控制语句之continue
continue:继续的意思(结束当前循环,立即进入下一次循环)
		不能单独用
		不能脱离循环语句(loop)中使用!
跳转控制语句值return
return 一般在函数(方法中使用)
		return:结束一个函数(方法),或者程序
		不能单独用!

22.函数(方法)

在js中定义函数的格式
		function 函数名(参数名1,参数名2,....){
		完成的函数的逻辑
		return 结果; //返回结果
		}			
	调用函数:
		赋值调用:
		var 变量名= 函数名(实际参数1,实际参数2..)
完成函数定义的心里明确:
		1)这个函数有没有返回结果;
		2)考虑参数的数据类型以及参数个数
函数名以及变量名:遵循小驼峰命名法 
		单个单词:字母全部小写
		多个单词:第一个单词全部小写,从第二个单词开始首字母大写,其余小写
1)定义函数的时候,形式参数上不能携带var
2)函数定义的格式不能省略{},否则不是一个函数,浏览器中js引擎是无法识别的
3)如果这个函数没有返回结果,那么赋值调用的是undefined(未定义)
4)无论任何语言中,有右括号的地方不能有分号,否则函数是没有"函数体",
没有函数体的方法是没有意义的
	 没有具体的返回结果,的函数定义的时候,
		跟有返回结果的函数定义相同,在函数体中直接输出!
		调用:
		单独调用
		函数名(实际参数1,...) ;

23.数组

 数组:
	可以存储多个同一种类型元素的一个容器!在javascript语言中,数组可以存储不同类型的元素,但是开发中,数组存储的必须为同一类型的元素!
	Js中本身就存在一个Array内置数组对象
	固定格式:
	(动态初始化:不给定元素)
	var 数组名称 = new Array() ;//不指定长度
	var 数组名称 = new Array(size); //指定数组长度
	(静态初始化:给定具体元素)
	var 数组名称 = new Array([元素1,元素2,...]) ;
	可以简写为
		var 数组名= [元素1,元素2,...] ;
	 数组的属性:length (长度)
	 数组名称.length
	 如何确定数组的元素
	 数组名称[角标值或者索引值]
 	 索引值从0开始,数组的最大索引值=数组长度-1
	 js(弱类型语言:语法以及结构都不严谨)中的数组:没有角标越界一说,它可以不断的给数组中追加元素!

24.数组的遍历

创建一个数组
	var arr = new Array(5) ;//5个长度
	键盘录入5个数据,将这个5个数据放在数组中,进行遍历(遍历数组使用函数改进)
	for(var i =0; i <5 ; i++){
		arr[i] = prompt("请输入数组元素:") ;
		alert(arr[i]) ;
	}
		alert(arr.length) ;
		document.write("调用函数进行遍历:") ;
			
			//按照 输出 :[元素1, 元素2, 元素3 ....元素n]
			//调用下面的函数
			printArray(arr) ;
	function printArray(arr){//数组传进去
			document.write("[") ;
			遍历数组:一一获取元素
			for(var i = 0 ;  i < arr.length; i++){//i是数组角标
			如果角标取到了最大索引值(对应的最后一个元素)
			if(i==arr.length-1){
			document.write(arr[i]+"]"+"<br/>") ;
			}else{
			不是最后一个元素,中间角标对应的元素
		document.write(arr[i]+",&ensp;") ;
					}
				}
			}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值