二阶段第一周(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);//脱掉字符串的外套并且执行里面的操作