二阶段第一周(3.28-4.2)

98 阅读3分钟

二阶段第一周(3.28-4.2)

day1---

变量:var 名字="值";

1."="号,赋值的意思,会把"="右边的值保存到左边的变量中;

2.如果只声明了变量而没有赋值,则为undefined----没有任何用处;

3.如果创建了多个变量,中间可以用","隔开;

常量:const 名字="值";

常量一旦创建,值不能被改变。

算数运算符:+ - * / %

%:取余/模 两数相除,不取商,取余,结果为0是偶数,则为奇数;

+运算:只要碰上了一个字符串,则都会变为字符串,然后把结果进行拼接;

- * / % 运算:有字符串也可以进行计算,但是必须是纯数字组成的字符串才可以,只要包含一个非数字字符,结果则为NaN;

数据类型:1.string--字符串 2.Number--数字 3.boolean--布尔 4.undefined--取值只有undefined 5.null--空;取值只有null,可以释放变量;

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

day-2---

分支语句:根据不同条件去执行不同代码

1.一个条件一件事:if(条件){操作};

2.一个条件两件事:if(条件){操作}else{默认操作};

3.多个条件多见识:if(条件1){操作1}else if(条件2){操作2} else{默认操作};

数据类型的转换:

true--1; false--0; undedined--NaN; null--0;

NaN:not a number--不是数字,但是是数字类型。

NaN参与任何算数运算都为NaN,参与任何比较运算都为false;

!isNaN()--判断是不是一个有效数字。

强制/显示转换:

1-----转为字符串:var str=x.tostring();

2-----转为数字: var num=parselnt(str);--转整数; var num=parseFlot(str);--转带有小数点的,只认识第一个小数点;

函数:

定义:称之为方法,需要预定义后,可以反复使用的代码段;

函数的使用:

1.创建:function 函数名(){代码段};

2.调用:1-直接在JS里面书写:函数名()--写几次执行几次; 2.绑定在页面的元素上,让用户触发:<元素 onclick="函数名()"></元素>

带有参数的函数:

1.创建带有参数的函数:形参/实参

语法:创建:function 函数名(形参1,形参2,.....){函数体};

调用:函数名(实参1,实参2,....);

注:带参数的函数在调用时,传入的实参顺序和个数要和形参一一对应上;

比较运算符:

>、 <、 >=、 <=、 ==、 !=

通常用于比较判断条件,结果一定是一个布尔值。

逻辑运算符:

&&(与/并且)   ||(或者)   !(非)

&&:只有全部条件都满足,结果才为true;只要有一个条件不满足,结果则为false;

||:只要条件都不满足,结果才为false,只要有一个条件满足,结果则为true;

!:取反;
  

day-3---

循环:反复执行相同或者相似的操作。

循环三要素:1.循环条件:开始.结束.重复执行的次数; 2.循环体:循环操作(干什么事); 3.循环变量:创建,并且要让他不断改变(自增/自减)

while循环:

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

死循环:while(1/true){循环体;} 循环流程控制语句:break;--退出

for循环:

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

死循环:for(;;){循环体};

数组:

下表从0开始,到最大长度-1结束;

三大不限制:1.不限制长度;2.不限制类型;3.不限制下标。

创建数组:

1.直接量方式:var arr=[1,2,3,....];

2.构造函数方式:var arr=new Array(1,2,3,....);

添加/修改数组中的元素:数组名[下标]=新元素;

获取时:下标越界,返回的结果是undefined;

添加时:下标越界,会导致数组变成一个稀疏数组。

数组唯一的属性:length;

语法:数组名.length;

可以用length实现三个固定套路:

1.向末尾添加元素:arr[arr.length]=新元素;

2.获取倒数第n个元素:arr[arr.length-n];

3.缩容/删除数组的倒数n个:arr.length-=n;

遍历数组:

---把数组中的每个元素取出来执行相同/相似的操作

for(var i=0;i<数组名.length;i++){ 数组名[i];当前次元素}

day-4------

DOM-Document Object Modle-文档对象模型

查找元素:

一.通过HTML的特点查找元素(3种方式):

1.通过ID找到元素:var elem=docunment.getElementById('id值');

在当前Dom树中,根据元素ID获取具体的DOM节点;

特殊:1.如果页面上有多个重复的ID,只会返回一个; 2.此方法找到的是单个元素,可以直接用于操作; 3.此方法不能使用,ID留给后端使用

二.标签名查找:

var elems=document/已经找到的父元素.GetElementsByTagName('标签名');

在当前DOM中,根据元素的标签名获取元素们;

特殊:1.返回的不是一个DOM节点,而是一个集合,集合不能直接用于操作;要么通过下标找到某个元素,要么遍历获取所有;

DOM集合:类数组对象,类似数组;1.都可以使用下标;2.都可以使用length;3.都可以遍历;

不一定非要从DOM开始查找,也可以写一个已经找到的父元素。

三.Class名查找:

var elems=document/已经找到的父元素.GetElementsBtClassName(‘class名’);

在当前DOM中,根据元素的class名获取元素们;

特殊:1.返回的不是一个DOM节点,而是一个集合,集合不能直接用于操作;要么通过下标找到某个元素,要么遍历获取所有;

通过节点之间的关系进行查找元素:前提--必须先找到一个,才能使用关系

父:xx.parentNode;----单个元素

子:xx.children;----集合

第一个儿子:xx.firstElementChild;---单个元素

最后一个儿子:xx.lastElementChild;---单个元素

前一个兄弟:xx.pareviousElementSibling;----单个元素

后一个兄弟:xx.nextElementSibling;----单个元素

注意:只有单个元素可以做操作,集合不行

操作元素:

<标签 属性名='属性值' style='样式'>内容</标签>

一.内容:三个方式

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;

样式:

语法:

获取:elem.style.css属性名---多用于判断

设置:elem.style.caa属性='css属性值';----修改

元素绑定事件:

单个元素:elem.onclick=function(){操作};

多个元素:for(var i=0;i<elems.length;i++){elems[i].onclick=function(){操作}}}

day-5

1、this的指向: 单个元素绑定事件:this->单个元素 多个元素绑定事件:this->当前触发的事件-

2、脱字符串衣服的方法:eval(str);//脱掉字符串的外套并且执行里面的操作