在线学习JavaScript——Day1

学习JavaScript——Day1



经过两年的大学生涯探索,我发觉本人比较适合前端开发,于是乎准备用这个账号来记录我的学习心路历程and笔记。(记录的可能有点乱)



about JavaScript

因为java应用程序接收数据后,对格式是有要求的,而HTML和CSS只是实现了显示数据、收集数据和网页的好看,所以出现了JavaScript这个可以对数据进行封装的基于对象的一种事件驱动的脚本语言。

在进行系统的学习之前,我确立了初步学习js的目标:

    1、js的代码域声明

    2、js的基础语法

    3、js的函数和数组

    4、js的常用对象和方法

    5、js的window对象



今日学习成果



js支持的数据类型:

    数值型:整数、浮点数

    字符串型:用'' 和""

    布尔型:ture、false

    空(null)值:用于定义不存在的引用

    未定义(undefined)值:是一个保留字,表已声明却未赋值

    复合数据类型:包括对象和数值两种



js的代码域声明

问题:

js代码在HTML网页中进行声明,由浏览器打开网页的时候解析运行,但是js的解释方法和HTML是不同的,如何让浏览器在运行网页中的代码时将js和HTML进行区分运行呢?

解决:

在HTML网页中独立的声明js的代码声明的区域,类似CSS

实现:

1、内部声明:
使用script标签来声明,理论上可以声明在HTML网页的任何位置
但是一般情况下声明在head标签中

2、外部引入:
在外部声明.js文件,在其中声明相关的js代码,然后在HTML中
引入js文件即可,效果和在内部声明相同。

	<!--内部声明方式 -->
	<script type="text/javascript">
		alert("我是内部声明");
	</script>

	<!-- 外部引入 -->
	<script src="js/2222.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/3333.js" type="text/javascript" charset="utf-8"></script>

其中,在浏览器拿到代码后,会先看script内部引用,再看body内的内容。执行时则现在script引用自上而下的执行,再执行body。但是值得注意的是,在级别上内部引用>body=外部引用。
(讲的有点乱,反正就大概这么个意思,可以自己实践对比就明白了)



js的变量学习

js特别凑活,活的不精致;对于js来说,很多东西能用就行了,还要啥自行车。

最典型的就是js变量是没有类型的,一个var走天下
数据类型也不像java分的那么细

问题

js的目的是实现网页和用户之间进行互动,有了js之后可以让
网页对用户在网页中录入的数据进行简单的处理,比如网格校验,
而数据的处理需要先将要处理的数据在内存中存储,怎么存储呢?

解决:

使用变量

作用:

存储要处理的数据

内容:

1、变量的声明

// js变量是没有类型的,没有int什么的类型
		var a1="hello mf world";
		var a2='c';
		var aa=123;
		var bb=3.14;
		var cc=true;
		var dd=new Date;//object类型
		//	alert(a1);	

2、数据的类型:numbber string boolean object

//	查看数据类型的方法: alert(typeof a1);

3、特殊的值
null–是个object类型
undefined——无类型
NaN–number类型,表示不是一个数值

		var b=null;//object类型
		var c;//这是个值,它的值是undefined
		var d="a";
		var e="123";
		//alert(Number());//将字符串转成数值

4、类型的转换
Number(数据):将数据转换为数值,如果数据转换失败,返回NaN
Boolean(数据):0,null,undefined,""会被转换为false

		// 除0以外的数值转为true,0为false
		//alert(Number("123"));
		//alert(Number("asdf"));//返回NaN

		//0,null,undefined,""会被转换为false
		var m=0;
		var n=5;
		var f;
		var g="";//空字符串
		var h="ekjb";
		var i=null;
		var j=new Date();
		//alert(Boolean(m));//返回false
		//alert(Boolean(n));//返回true
		//alert(Boolean(f));//返回false
		//alert(Boolean(g));//返回false
		//alert(Boolean(h));//返回true
		//alert(Boolean(i));//返回false
		//alert(Boolean(j));//返回true

5、注意事项

		·js准许变量名重复,但是会后续执行的会覆盖前面的
		·js中的字符串可以是单引号‘’
		·js中的代码结束后可以不添加分号;

据说写js的大佬就用了十天的时间。emmm一般有这种功底的人,基本都没有什么头发…




js的数据运算

算术运算:+、-、*、/、%
比较运算:>、>=、=、<、<=
逻辑运算:&&(与)、||(或)、!(非)、&、|

特殊:
= =运算:
如果= =比较的两端的数据类型是相同的,则直接比较内容,内容相同返回true,不同返回false。
如果= =比较的两端数据不同,会先使用Number()将两端数据转换为数值,然后在进行比较

===运算:
先比较类型,类型不同直接false,类型相同再比较内容,内容相同返回true,不同返回false

		//声明变量数据
			var a=12;
			var b=13;
		//算术运算
			alert(a+b);
		//比较运算
			alert(a>b);
		//逻辑元算
			alert(a>b&&a<b);
		
		//==和===运算
			var m=1;
			var m1="1";
			var m2=true;
			var m3="true";
			alert(m==m1);//ture
			alert(m==m2);//ture
			alert(m==m3);//false
			alert(m===m1);//false



js的逻辑结构和循环结构

1、js的逻辑结构:

\quad 作用: 判断数据的处理场景,根据判断结果来运行对应的代码完成数据处理
\quad 内容:
\quad \quad if单分支结构
\quad \quad if(){}else{}双分支结构
\quad \quad if(){}else if(){}…else{}多分支结构 //只能成立一个
\quad \quad switch选择机构

	//单分支结构
			var a=3;
			if(a>2){
				alert("ahhh,js好简单");
			}
		
			var b="abc"; 
			if(b){alert("66666");}  
			//这里js做了一个隐形的Boolean()运算  if(Boolean(b)){alert("66666");}
			
	//选择结构  
			//选择结构的比较值和选择的值必须类型和内容完全一致才会被选择,相当于进行===比较
			var a="a";  //var a=1;
			switch(a){
				case "a":  //case 1:
					alert("选择结构学习");
					break;
				default:
					break;

2、js的循环结构:

\quad \quad for循环
\quad \quad while循环
\quad \quad do{}whule()循环 //先执行一次循环体,然后再判断

	//循环结构:(九九乘法表)
			for(var i=1;i<=9;i++){
				for(var j=1;j<=i;j++){
					//alert(j+"*"+i+"="+(j*i));  //要alert45次,还不好看
					document.write(j+"*"+i+"="+(j*i)+"&nbsp;&nbsp;");   //把文本直接写入网页
				}
				document.write("<br />");  //换行
			}



js的数组学习


问题:

\quad 目前我们可以使用变量,运算符和逻辑结构在HTML网页中声明数据的处理代码了。但是目前数据都是直接使用变量来进行存储的,那么一旦涉及到大量数据的运算,就需要声明大量的变量来使用,而变量之间是相互独立的,无法将数据的整体关系存储出来.
\quad 比如:张三的个人信息。

解决:

使用数组

作用:

1、存储数据
2、将数据的整体关系存储出来

数组的使用:

1、数组的声明
\quad var 变量名=new Array();
\quad var 变量名=new Array(长度);
\quad var 变量名=[];

	//数组的声明
		var arr=new Array();//声明一个空数组
		var arr2=new Array(5);//声明一个指定长度的数组 — alert(arr2.length); 显示5
		var arr3=[];//声明一个空数组,简化的写法
		var arr4=[1,"a",true,new Date()];  //js的数组可以存储任意类型的数据

2、数组的存储和获取
\quad 数组名[角标]=值;//给指定的角标赋值
\quad var 变量名=[角标]; //获取指定的角标的数据,如果角标不存在,返回undefined

	//数组的存储和获取
		//js的数组可以在创建的时候初始化村粗数据,也可以创建好后按照角标存储数据
		var arr5=[];
		arr5[0]="a";
		arr5[1]="b";
		arr5[20]="c";   //js数组长度是动态变化的
		alert(arr5);
		alert(arr5[0]);   //直接按照角标获取数据即可

3、数组的length属性
\quad var 变量名=数组名.length; //返回数组的长度
\quad 数字名.length=值; //给数组指定长度,如果是缩减,则删除后面的数据

	//数组的length属性
		alert(arr5.length);
		arr5.length=3;
		alert(arr5);

4、数组的遍历

	//数组的遍历
		for(var i=0;i<arr5.length;i++){
			alert(arr5[i]);
		}
		
		for(var i in arr5){
			alert(i);   //它alert的i是角标 - 0,1
			alert(arr[i]);   //这alert的才是值
		}

5、数组的常规操作
类似java里的Arrays工具类
在js用户指南 - 语言参考 - js对象 - Array对象 - 方法

			//concat方法:将传入的内容合并当前数组中,并返回新数组
				var a,b,c,d;
				a=new Array(1,2,3);
				b="JS";
				c=[42,"Hello"];
				d=a.concat(b,c);
				alert(d);   //返回数组[1,2,3,"JS",42,"Hello"]			
					
			//join方法:把数组里的值取出来,拼成一个大字符串,每个字符串之间由指定间隔符号连接
				var a1=[1,2,3];
				var b1=a.join("-");
				alert(b1);
			
			//pop方法:移除数组的最后一个数值 
				var c1=[1,2,3];
				c1.pop();
				alert(c1);   //返回 1,2
				
				var d1=c1.pop(); //d1=被删掉的那个数值
				alert(d1);   //返回 3
				
				//用for循环将数组一直删除到没有值为止
					var e1=[1,2,3];
					for(let i=0;i<=e1.length;i++){
						e1.pop();
						alert(e1);
					}  //返回 1,2   1
			
			//push方法:将制定的元素追加到数组的最后,并返回数组新的长度
				var a=[1,2,3];
				a.push("bb");
				alert(a);   //返回1,2,3,bb
				var l=a.push("bb");   
				alert(l);   //返回4,即数组长度
				
			//sort方法:排序
			//shift方法:删除数组第一个元素并返回该元素
			//unshift方法:将指定元素插入数组的首位,并返回该数组

数组的特点:

\quad 1、数组的创建不需要指定长度
\quad 2、数组的长度是动态变化的,存储的数据多,长度自动增长,删除数据,长度自动所见



以上就是我今日的学习成果啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值