学习java的四天

127 阅读6分钟

 嗨喽大家好我是来自前锋的一位刚学java四天的小白,接下来我来分享我这四天学到的内容

第一天

我们学习了简单的的Java的概念和运用

js特点:

 1、代码可用任何文本编辑器编写

2、解释型语言

 3、弱类型语言

javascript使用: 

使用方式:2个 

在HTML页面写上一个标签: - 临时测试/上课用  

创建一个xx.js文件,在里面书写js代码,最后在HTML页面引入  

最重要的还是

算术运算符:+ - * / %  

特殊:

 %:取余,俗称模,两个数相除,但是不取商而取余数

 作用:1、判断奇偶性 2、获取某个数字的最后n位

隐式转换:悄悄的转换,数据类型会发生变化

一定要切忌以下几句话 :默认运算符左右两边都会悄悄的变成一个数字,在运算 特殊:1、+运算,只要碰上一个字符串,则都变为字符串,+运算也不再+运算,变成了拼接字符串操作 

 2、-*/%运算,有字符串也可以转为数字,但是必须是纯数字组成的字符串才可以,只要包含了非数字字符,结果则为NaN(没用的东西) NaN:Not a Number:不是一个数字,但是确实是数字类型 - 不是一个有效数字。、

接下来是扩展de

JS中数据类型:

 1、原始/基本/值类型:5个 

 1、String - 字符串,取值有无数个,必须写"" 或者 '' 

 2、Number - 数字,取值有无数个,直接写个数字就行 

 3、Boolean - 布尔,取值只有两个,true 或 false,多半都是用于判断比较 

 4、Undefined - 取值只有一个默认值undefined,没有用处 

 5、Null - 空,取值只有一个null,作用:释放变量、内存,节约内存空间。

弹出一个用户输入框:var user=prompt("提示文字","默认值"); 

 2、分支结构:根据条件的不同,选择一部分代码执行操作 

 1、一个条件 一件事,满足就做,不满足就不做

 if(条件){ 操作 }

 2、一个条件 两件事,满足就做第一件,不满足就做第二件 if(条件){ 操作 }else{ 默认操作; } 3、多个条件多件事,满足谁就做谁 if(条件1){ 操作1 }else if(条件2){ 操作2 }else if(条件3){ 操作3 }else{ 默认操作; }

第二天

数据类型转换: javascript是弱类型语言,数据类型都是由数据来决定的 

转数字:3个方法 

1、var num=parseInt(str/num); parse->解析 Int->整型/整数 原理:从左向右依次读取每个字符,进行转换,碰到非数字字符就停止,而且不认识小数点,如果一开始就碰到了不认识的字符,结果为NaN 

 2、var num=parseFloat(str); parse->解析 Float->浮点数/小数 原理:几乎和parseInt一模一样,认识小数点, 数字只有一个小数点,第二小数点就是不认识的字符 

3.Number(x);//x是万能的,任何人都可以转为数字(没用)

函数:

函数是第一等公民的地位  完成了一个xxxxxxxxxxx的功能 

 1、什么是函数:也称为方法,需要【预定义】后,可以【反复使用】的【代码段】

 2、创建函数并且调用函数 第一步: 创建:function 函数名(){ 若干代码段 } 第二步: 调用:2种方式

 1、直接在js里面写 函数名(); 程序员写几次就会执行几次 

 2、绑定在页面的元素上,让用户来触发,用户触发一次就会执行一次 - 提升用户体验感/多了交互感  

 3、以后何时要使用函数呢? 1、打开页面不希望立刻执行 2、希望用户/程序员来触发 3、希望能够被反复执行

 4、本身就是一段独立的功能体:暂时理解为我们的每一个作业就是一个独立的功能体

 5、以后要尽量的将每个功能封装为一个函数,函数是第一等公民的地位,而且函数中的变量会自动释放 4、带有参数的函数 

 1、创建带参数的函数: 形参:就是一个变量名,只不过这里的变量名不需要var,并没有保存真正的值,形式参数,简称形参 function 函数名(形参,...){ 函数体; } 

 2、调用带参数的函数: 实参:实际参数,这个变量名所保存的值 函数名(实参,...) 一个函数可以执行相似的操作; 注意:带参数的函数,在调用时,传入的实参的顺序和个数都要一一的和形参对应上

 3、分支结构 

 1、代码中流程控制语句:3种 

  1、顺序结构: 默认结构,代码从上向下一步一步执行的 

  2、分支/选择结构: 根据条件,选择一部分代码去执行

  3、循环结构: 根据条件,判断你是否需要再一次重复的执行某一些代码

 2、比较运算符:> < >= <= == != 作用:比较判断/条件中出现

 结果:以上六个运算符,结果一定是一个布尔值 其实比较运算符也具有隐式转换,

 3、if结构: 1、一个条件一件事,满足就做不满足就不做 if(条件){ 操作 } 2、一个条件2件事,满足就做1不满足2 if(条件){ 1 }else{ 2 } 3、多个条件多件事,满足谁就做谁 if(条件1){ 1 }else if(条件2){ 2 }else{ 3 }

循环结构

第三天

while循环: 语法: var 循环变量=几; while(循环条件){ 循环体; 循环变量的变化; } 原理:先判断循环条件,如果条件为真,则执行一次循环体中的语句,然后再一次判断循环条件,如果为真,则再执行一次循环体中的语句 ... 直到循环条件为假,才会退出循环 强调:循环是一次一次执行的,只不过速度很快,而且循环没结束之前,会卡主后续代码 

 死循环:停不下来的循环,多半用于不确定循环次数的时候 while(true){ 循环体; } 循环流程控制语句:死循环多半都要搭配上一个:退出循环:break; - 可以出现在任何一个循环之中 

4、for循环:

语法: for(var 循环变量=几;循环条件;循环变量的变化){ 循环体; } 

 特殊:1、死循环:for(;;){循环体} 2、创建循环变量部分,也可以,隔开创建多个变量 . 

数组: 创建变量名越多,开辟的内存空间越大,网站性能有所影响

数组中的每个元素都有一个唯一的位置序号,称之为【下标】,用来表示数组中的每一个元素,下标是从0开始的,到最大长度-1结束

 1、创建数组:2种方式 

 1、直接量方式:var arr=[];//空数组 var arr=[元素,元素,...]; 

 2、构造函数方式:var arr=new Array();//空数组 var arr=new Array(元素,元素,...); 

特殊: 1、下标处如果没人,则为添加 2、下标处如果有人,则为替换

 3、如果下标越界 - 会导致我们的数组变为一个稀疏数组,因为会导致下标不在连续 

 4、数组具有3大不限制:

 1、不限制长度 - 优点

 2、不限制类型 - 优点 

 3、不限制下标越界: 获取时,下标越界,返回结果是一个undefined 添加时,下标越界,导致我们的数组变为一个稀疏数组,,

 4、数组唯一的一个属性:length长度 语法:数组名.length; *有了这个属性,

我们就可以实现数组的三个固定套路: 1、永远希望想末尾添加元素:arr[arr.length]=新值; 2、获取倒数第n个:arr[arr.length-n]; 3、缩容:删除数组的倒数n个:arr.length-=n 6、遍历数组:把数组中的每一个元素都取出来执行相同 或 相似的操作 公式: for(var i=0;i<数组名.length;i++){ 数组名[i];//当前次拿到的数据 } (非常好用)

第四天 

树根:是一个document对象,document对象不需要我们程序员创建,由浏览器的JS解释器创建,一个页面只有一个document

通过HTML的特点去查找元素 1、id查找:var elem=document.getElementById("id值"); 在当前DOM树中,根据元素的id,获取具体的DOM节点 返回:找到了,返回对应的元素 没找到,null

特殊:1、如果页面上有多个重复的id,只会返回第一个 2、此方法找到的是单个元素 - DOM节点是可直接用于做操作的

标签名查找:var elems=document/已经找到的父元素.getElementsByTagName("标签名"); 在当前DOM树中,根据标签名获取元素们 返回:找到了,返回一个DOM集合 没找到,空数组 

 特殊:1、返回的不是一个DOM节点,而是一个DOM集合,是不能直接用来做操作的,要么使用下标拿到某一个,要么使用遍历拿到全部 2、不一定非要从树根开始查找元素,也可以写一个你已经找到的某个父元素 

class查找:var elems=document/已经找到的父元素.getElementsByClassName("标签名"); 在当前DOM树中,根据标签名获取元素们 返回:找到了,返回一个DOM集合 没找到,空数组 。

特殊:1、返回的不是一个DOM节点,而是一个DOM集合,是不能直接用来做操作的,要么使用下标拿到某一个,要么使用遍历拿到全部 2、不一定非要从树根开始查找元素,也可以写一个你已经找到的某个父元素

4、操作元素:<标签名 属性名="属性值" style="样式">内容</标签名> 

 1、内容: *1、innerHTML属性:获取 或 设置 某个元素的内容,并且可以识别标签 获取内容:elem.innerHTML; 设置内容:elem.innerHTML="新内容"; 

 2、innerText属性:获取 或 设置 某个元素的文本,不能可以识别标签 获取内容:elem.innerText; 设置内容:elem.innerText="新内容"; 以上两个属性,是为双标签准备的

 3、value属性:专门为单标签(input)操作内容准备的 获取内容:input.value; 设置内容:input.value="新内容"; 

 1、获取属性值:elem.getAttribute("属性名"); 

 2、设置属性值:elem.setAttribute("属性名","属性值"); 无敌:

1、获取:elem.属性名; 

 2、设置:elem.属性名="属性值"; 缺陷:

1、不能操作自定义属性,只能操作标准属性 

 2、class在ES6升级为了一个关键字,所以想要写class换为了className 

 3、样式: 1、css定义的方式:3种

 1、内联样式 - 二阶段 

 2、内部样式表 

 3、外部样式表 - 最适合写样式的时候使用此方法 2、JS操作内联样式的好处:

 1、优先级最高,写的JS样式必定生效

 2、一次只会操作一个元素

 3、语法: 获取:elem.style.css属性名; 设置:elem.style.css属性名="css属性值"; 特殊:css属性名,要把有横线地方,换成小驼峰命名法

元素绑定事件: 单个元素:elem.onclick=function(){ 操作; this->单个元素绑定事件,this->elem绑定事件的这个元素 } 多个元素:for(var i=0;i<elems.length;i++){ elems[i].onclick=function(){ 操作 this->多个元素绑定事件,this->当前触发事件的元素 } } 

总的来说Java难度比CSS稍微难一点需要更多的时间去理解练习加油刚芭蕾