第一天
一,js的简介
js是运行在客户端的编译型,解释型的脚本语言。
编译型:在执行程序之前先要检查代码是否正确,如果不正确直接不执行。
解释型:运行程序之前不需要检查代码是否正确,如果在执行过程中发现了错误,就将停止执行后续的代码。
一,js的使用
分为内联式,内部,外部
推荐使用内部样式
js程序一般放在body里面,<script></script>---内部样式
将js代码建立一个**.js文件,单独放在文件夹内,<script src="**.js路径">---外部样式
打印台输出:1、在控制台显示想要输出的内容 console.log(想要查看输出后的变量)
2、在页面显示输出的内容document.wrtin(想要查看输出后的变量)
3、在页面弹出框显示输出的内容 alert(想要查看输出后的变量)
二,变量与常量
1、变量
var 变量名 = 变量值
特点:变量创建过后可以修改,一但创建之后的程序之中可以反复使用,以后使用变量名就相当于使用变量值,比较方便。
注意:变量名不能用关键词去命名,比如:var var = 1;
变量名不能以数字开头,可以用小驼峰命名法或者大驼峰命名法
如果你的变量名为name,不管你输入的内容是什么类型都会给你转成一个字串符。
如果需要多个变量可以简写:var a = (1);b = (2);c = (3);
2、常量
const 常量名 = 常量值
特点:变量创建过后不可以修改
三,算数运算符
+、—、*、/、%
+:左右但凡出现一个字符串,那么+不再是+号,而起到拼接符使用。
-、*、/、%:字符串也可以变为数字,但是前提是必须是纯数字。
var ne = ("12345" / "5");
console.log(ne);
四,数据类型
数据类型分为了两大类: number 数字类型---取值无数个
string 字符串类型---取值无数个
boolean 布尔类型---取值两个---false/true
undefined 未定义类型---取值一个---创建一个变量,没有赋值,输出的结果就是undefined
var ne
console.log(ne);
null 空类型
分支结构:执行了一条路就不会再走其他的路
一个条件,一件事满足就做,不瞒住就不做 if(条件){
第一件事
}
一个条件,二件事满足就做第一件,不瞒住就做第二件
if(条件){
第一件事
}else{
第二件事
}
多个条件,多件事满足谁就做谁。
if(第一个条件){
第一件事
}
else if(第二个条件){
第二件事
}
注意:else可以写多个,程序是从上往下执行的,所有判别需要安顺序写
第二天
一,数据类型转换
1、隐式转换
需要补一哈内容
2、强制转换:
parselnt(字符串/数字)---不认识小数点
parseFloat(字符串/数字)---认识第一个小数点
二,function函数
定义函数:function(函数名()){
需要执行的代码
} 使用函数:将函数定义在某个标签内,让用户来点击触发
比如:<button onclck="函数名()"></button>
二,分支结构
1、程序执行分为三种
1.按顺序执行----从上向下执行
2.分支执行---选择其中一段执行
3.循环执行---一段代码重复执行
2、比较运算符<、>、=、<=、>=、!=
结果都为一个布尔值false/true
2、逻辑运算符
&& 并且----相比较,必须每一个都满足才会执行
|| 或者----相比较,其中一个满足就可以执行
! 颠倒布尔值
第三天
一,循环
循环分为两类:for循环/while循环
for循环 for(var 循环变量;循环条件;循环变化){
循环体
}
特点:有明确的循环次数,就用for循环
while循环
var 循环变量=几;
while(循环条件){
循环体;
循环变量变化;
}
特点:没有明确的循环次数,就用while循环,一般用于死循环
二,数组
创建数组:var 数组名 = [数据1,数据2.......]
每个数值都有一个下标,并且下标是从0开始的
获取下标:数组名[下标]
添加/替换:数组名[下标]=新值;下标处如果没有元素则为添加,如果有了就为替换
特点:数组不限制数据类型,不限制数据数量
三个固定套路:
1、获取倒数第n个元素:arr[arr.length-n]
2、始终向末尾添加元素:arr[arr.length]=新值;
3、缩容:删除倒数n个元素:arr.length-=n
公式:
for(var i=0;i<数组名.length;i++){
console.log(数组名[i]);//当前次元素,要干什么,看你的
}
第四天
一,DOM
1、通过ID查找元素
语法:var elem=document.getElementById("id值");
var 名字=document.getElementById("id值");
2、通过标签名查找元素
语法:var 名字=document/已经找到了的父元素.getElementsByTagName("标签名");
3、通过class名查找元素
语法:var elems=document/已经找到了的父元素.getElementsByClassName("标签名");
4、通过关系查找元素:
前提条件:必须先找到一个元素才可以调用关系网
父元素:elem.parentNode;
子元素:elem.children; - 集合
第一个儿子:elem.firstElementChild;
最后一个儿子:elem.lastElementChild;
前一个兄弟:elem.previousElementSibling;
后一个兄弟:elem.nextElementSibling;
强调:DOM集合不能直接做操作!
二,操作元素
前提:找到元素才能操作元素:<标签 属性名="属性值" style="样式">内容</标签>
1、内容:
1、innerHTML:获取 和 设置 开始标签到结束标签之间的内容 - 支持识别标签
获取:elem.innerHTML;
设置:elem.innerHTML="新内容";
2、innerText:获取 和 设置 开始标签到结束标签之间的文本 - 不支持识别标签
获取:elem.innerText;
设置:elem.innerText="新文本"; 3、value:专门为input的value值准备的
获取:input.value;
设置:input.value="新值";
2、属性:
获取属性值:elem.getAttribute("属性名");
设置属性值:elem.setAttribute("属性名","属性值");
简化版:
获取属性值:elem.属性名;
设置属性值:elem.属性名="新属性值";
3、样式:
获取:elem.style.css属性名;
设置:elem.style.css属性名="css属性值";
操作:
this关键字:目前只能用于事件内:
如果单个元素绑定事件:this->这个元素
如果多个元素绑定事件:this->当前触发事件的元素
}
总结:
获取 - 往往都是用与判断比较
设置 - 就是添加/修改