1.基础教程
JavaScript介绍:
1.JavaScript是互联网上最流行的脚本语言,这门语言可以用于web和HTML,更可广泛用于服务器,pc端,移动端.
2.JavaScript脚本语言
JavaScript是一种轻量级的编程语言
JavaScript是可插入HTNL页面的编程代码
JavaScript插入HTML页面后,可由所有浏览器执行
JavaScript实现:
1.JavaScript用法:
HTML中的脚本必须位于<script></script>标签之间
脚本可被放置在HTML页面的<body>和<head>部分中
2.JavaScript标签:
在HTML中插入JavaScript,使用<script>标签
在<script></script>直接按书写代码
3.JavaScript使用限制:
在HTML中,不限制脚本数量
通常会把脚本放置与<head>标签中,以不干扰页面内容
document.write("hello!");
JavaScript输出
1.JavaScript通常用来操作HTML
2.文档输出:
document.write("<p>this is my first JavsScript</p>");
JavaScript语法:
1.JavaScript语句:
JavaScript语句向浏览器发出的命令.语句的作用是告诉浏览器该做什么
2.分号:
语句之间的分割是分号(;)
注意:分号是可选项,有时候看到不以分号隔开的
3.JavaScript代码:
按照编写顺序依次执行
4.标识符:
JavaScript标识符必须以字母,下划线或美元符号开始
JavaScript关键字
5.JavaScript对大小写敏感
JavaScript同样对大小写很敏感
6.空格
JavaScript会忽略掉多余的空格
7.代码换行
不要拆单词
8.保留字
JavaScript注释
1.单行注释
//
2.多行注释
/**/
JvaScript变量
1.变量是用来存储信息的"容器"
例:var x = 10;
var y = 10.1;
var z = "hello";
JvaScript数据类型
1.字符串(String)
2.数字(Number)
3.布尔(Boolean)
4.数组(Array)
5.对象(Object)
6.空(null)
7.未定义
8.可以通过赋值为null的方式清除变量
var arr = [1,true,"hello",4];
//alert(arr[1]);
var arr2 = new Array(1,"hello",true);
var arr3 = new Array();//数组不用规定大小,动态
arr3[0] = 10;
2.语法详解
JavaScript运算符1.算数运算符
+,-,*,%,/,++,--
2.赋值运算符
=,+=,-=,*=,/=,%=
3.字符串操作
4.比较运算符(返回的是boolean类型)
==,===,!=,!==,>,<,>=,<=
5.逻辑运算符:
&&,||,!
6.条件运算符:
例:x<10? "x比10小" : "x比10大"
var a = 10;
var b = "10";
alert(a == b);//true 不需满足类型相同 != 也是这规则
alert(a ===b);//false 必须满足类型相同 !== 也是这规则
JavaScript条件语句
1.if...else
2.switch
var i = 2;
switch (i){
case 1:
document.write("i = 1");
break;//跳出当前的循环
case 2:
document.write("i = 2");
break;
case 3:
document.write("i = 3");
break;
default ://不满足任何case
document.write("条件不满足");
break;
}
JavaScript循环语句
1.for循环,for/in
2.while循环,do...while
var i=[1,2,3,4,5,6];
var j;
for(j in i){
document.write(i[j]);//123456
}
var k = 11;
do{//while是先判断再执行,do...while是先执行一次,在判断,执行
document.write(k);
k++;
}while(k<=10){
}
JavaScript跳转语句
1.break 跳出当前循环,没有下一次循环
2.continue 结束本次循环,进行下一次循环
3.函数
函数是由时间驱动的或者当它被调用时执行的可重复使用的代码块
例:实现10组数字的和
定义函数
1.定义函数:
function 函数名(){
函数体;(代码块)
}
2.注意:
JavaScript对大小写十分敏感,所以这里的function必须小写.
在函数调用时,也必须按照函数的相同名称来调用函数
函数调用
1.函数调用:
函数在定义好之后,不能自动执行,需要进行调用
2.调用方式:
1).在<script>标签内调用
2).在HTML文件中调用
function biaoqianneidiaoyong(){
alert("在<script>标签内调用");
}
biaoqianneidiaoyong();
带参数的函数
1.函数参数
在函数调用中,也可以传递值,这些值被称为参数
例:demo(arg1,arg2);
2.参数的个数可以任意多,,每个参数通过","隔开
3.注意:
参数在传递时,其顺序必须一致
4.参数意义:
通过传递参数的个数以及阐述的类型不同完成不同的功能
带返回值的函数
1.返回值
有时,我们需要将函数的值返回给调用他的地方
通过return语句就可以实现
注意:在使用return语句时,函数会停止执行,同时返回值
function demo(a,b){
if(a>b){
return alert("a大");//不介意这么用
}else{
return alert("b大");
}
}
//demo(10,20);
var i = demo(10,20);
/*局部变量和全局变量*/
var n =10; m=10;//全局变量 任何地方都可以使用
function demo(){
var i = 10;//局部变量,只能在当前函数中使用,要在函数调用后才可以使用
x = 10;//全局变量 任何地方都可以使用
n=1;
}
demo();
//alert(i); //没反应,算出错
alert(x); //输出10
alert(n); //输出1
alert(m); //输出10
4.异常处理和事件处理
异常捕获
1.异常
当JavaScript引擎执行JavaScript代码时,发生了错误,导致程序停止运行
2.异常抛出
当异常产生,并且将这个异常生成一个错误信息
3.异常捕获
try{
发生异常的代码块;
}catch(err){
错误信息处理;
}
function demo() {
// alert(str);
try {
alert(str);
} catch (err) {
alert(err);
}
}
//demo();
4.Throw语句:
通过throw语句创建一个自定义错误
function d() {
var e = document.getElementById("txt").value;
try {
if (e == "") {
throw "请输入";
}
} catch (err) {
alert(err);//若为"",弹出 "请输入"
}
}
事件
1.什么是事件
时间是可以被JavaScript侦测到的行为
2.主要事件:
onClick 单击事件
onMouseOver 鼠标经过事件
onMouseOut 鼠标移出事件
onChange 文本内容改变事件
onSelect 文本框选中事件 (指选中内容而不是点击文本框)
onFocus 光标聚集事件 (点击文本框)
onBlur 移开光标事件
onLoad 网页加载事件
onUnload 关闭网页事件
/*<input type="text" οnselect="selectm(this)">*/
function selectm(m){
m.style.background="red";
}
/*<body οnlοad="mg()">*/
function mg(){
alert("网页加载事件");
}
5.DOM对象
DOM简介1.HTML DOM:
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)
Document | Root element<HTML> | --------------------------------------------------------- | | Element: Element: <head> <body> | | Element: -------------------------------------------- <title> | | | | Attribute: Element: Element: Text: "href" <a> <h1> "My title" | | Text: Text: "My link" "My header"
2.DOM操作HTML:
1):JavaScript能够改变页面中的所有HTML元素
2):JavaScript能够改变页面中的所有HTML属性
3):JavaScript能够改变页面中的所有CSS样式
4):JavaScript能够对页面中的所有事件做出反应
DOM操作HTML:
1.改变HTML输出流
注意:绝对不要在文档加载完成后使用document.write().这会覆盖该文档
2.寻找元素:
通过id找到HTML元素
通过标签名找到HTML元素
3.改变HTML内容
使用属性:innerHTML
4.改变HTML属性
使用属性:attribute
function d(){
document.getElementsByTagName("p");//相同元素的第一个
}
DOM操作CSS
1.通过DOM对象改变CSS
语法:document.getElementById(id).style.property=new styl
function m(){
alert(1)
/*<button οnclick="m()">按钮</button>*/
document.getElementById("d").style.background="yellow";
}
DOM EventListener
1.DOM EventListener:
方法:addEventListener();
removeEventListener();
2.addEventListener(): ("事件",做什么) 句柄之间不会覆盖
方法用于向指定元素添加事件句柄
3.removeEventListener(): 同上
溢出方法添加的事件句柄
function d() {
document.getElementById("div").innerHTML = "2";
}
<p id="div">hello</p>
<button οnclick="d()">按钮</button>
<hr>
<button id="btn">按钮</button>
<button id="btn2">按钮2</button>
<script>
document.getElementById("btn").addEventListener("click", function () {
alert("hello")
});
var a = document.getElementById("btn2");
a.addEventListener("click",f1);//不用括号 句柄
a.addEventListener("click",f2());//加载完就运行,点击没反应
a.removeEventListener("click",f1);
a.removeEventListener("click",f2());//加载完弹出2次!错误
function f1(){
alert(1)
}
function f2(){
alert("不能加括号")
}
</script>
6.事件详解
事件流1.事件流:
描述的是在页面中接受事件的顺序
2.事件冒泡
由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点(文档)
3.事件捕获:
最不具体的节点先接收事件,而最具体的节点应该是最后接收事件
事件处理
1.HTML事件处理:
直接添加到HTML结构中
2.DOM0级事件处理 //写法方便但会被覆盖
把一个函数复制给一个事件处理程序属性
3.DOM2级事件处理
addEventListener("事件名","事件处理函数","布尔值");
true:事件捕获
false:事件冒泡
removeEventListener();
4.IE事件处理程序(IE8及以下) 只是名称不一样
attachEvent
detachEvent
<button id="btn1">按钮DON0</button>
<script>
var btn1 = document.getElementById("btn1");
btn1.onclick = function () {
alert("DOM0级事件处理1");
}
btn1.onclick = function () {//缺点,1被覆盖
alert("DOM0级事件处理2");
}
// btn1.onclick = null;//清除事件
</script>
<hr>
<button id="btn2">DOM2</button>
<script>
var btn2 = document.getElementById("btn2").addEventListener("click", function () {
alert("DOM2")
})
var btn20 = document.getElementById("btn2");
btn20.addEventListener("click", a);
btn20.addEventListener("click", b);
btn20.addEventListener("click", a);//无效
function a() {
alert("DOM2-2");
}
function b() {
alert("DOM2-3");
}
btn20.removeEventListener("click", b);
</script>
<hr>
<button id="btn3">3333</button>
<script>
var btn20 = document.getElementById("btn3");
if (btn20.addEventListener) {
btn20.addEventListener("click", d);
} else if (btn20.attachEvent) {
btn20.attachEvent("onclick", d);
} else {//DOM0
btn20.onclick = d();
}
function d() {
alert("hello");
}
</script>
事件对象
1.事件对象
在出发DOM事件的时候都会产生一个对象
2.事件对象event:
1):type:获取事件类型
2):target:获取事件目标
3):stopPropagation():阻止事件冒泡
4):preventDefault():阻止事件默认行为
<div id="div">
<button id="btn1">按钮</button>
<a href="http://www.baidu.com" id="aid">百度</a>
</div>
<script>
document.getElementById("btn1").addEventListener("click", show);
function show(event) {
// alert(event.type)//获取事件类型
alert(event.target)//获取事件目标
}
document.getElementById("div").addEventListener("click",showDiv);
function showDiv(){
alert("事件的冒泡");
}
document.getElementById("aid").addEventListener("click",showa);
function showa(event){
// event.stopPropagation();//阻止事件冒泡
event.preventDefault();//阻止事件默认行为 即不会跳转了
}
</script>
7.内置对象
什么是对象1.什么是对象:
JavaScript 中的所有事物都是对象:字符串,数值,数组,函数...
每个对象带有属性和方法
JavaScript 允许自定义对象
2.自定义对象:
1):定义并创建对象实例
2):使用函数来定义对象,然后创建新的对象实例
<!-- 创建对象-->
<script>
people = new Object();
people.name = "iwen";
people.age = "30";
people2 = {name:"iwen2",age:"31"};
function people3(name1,age1){
this.name = name1;
this.age = age1;
}
son=new people3("iwan3",32);
document.write(son.name+son.age1)//iwan3undefined
</script>
String字符串对象
1.String对象
String对象用于处理已有的字符串
字符串可以使用双引号或单引号
2.在字符串中查找字符串:indexOf()
3.内容匹配:match();
4.替换内容:replace()
5.字符串大小写转换:toUpperCase()/toLowerCase()
6.字符串转为数组:strong>split()
<script>
var str = "Hello World";
// document.write(str.length);//11
// document.write(str.indexOf("World"));//存在返回开始位置,否则-1
// document.write((str.match("World")));//存在返回字符串,否则返回null
// document.write(str.replace("World","修改成这个"));//左边是本来存在的
// document.write(str.toUpperCase());
var str1 = "hello,world,hehe";
var s = str1.split(",");
document.write(s[1]);//world
</script>
Date日期对象
1.Date对象
日期对象用于处理日期和时间
2.获得当日的日期
3.常用方法:
getFullYear();获取年份
getTime();获取毫秒
setFullYear();设置具体的日期
getDay();获取星期
<script>
window.οnlοad=startTime;
var date = new Date();
// document.write(date.getFullYear());
// document.write(date.getTime())
/* date.setFullYear(2010,1,1)
document.write(date);*///Mon Feb 01 2010 20:17:17 GMT+0800 (中国标准时间)
// 时钟
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById("timetxt").innerHTML = h + ":" + m + ":" + s;
t = setTimeout(function () {
startTime();
}, 500)
}
function checkTime(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
</script>
<div id="timetxt"></div>
Array数组对象
1.Array对象
使用单独的变量名来储存一些列的值
2.数组的创建
例:var myArray=["Hello","iwen","ime"];
3.数组的访问:
通过指定数组名以及索引号码,你可以访问某个特定的元素
注意:[0]是数组的第一个严肃.[1]是数组的第二个元素.
4.数组常用方法:
concat():合并数组
sort():排序
push():末尾追加元素
reverse():数组元素翻转
<script>
var a = ["hello", "world"];
var b = ["iwen", "ime"];
var c = a.concat(b);
// document.write(c);//hello,world,iwen,ime
/* var d = [1, 3, 2, 0, 9]
document.write(d.sort());//0,1,2,3,9
document.write(d.sort(function (a, b) {//9,3,2,1,0
return b - a;
}))*/
/* var e = ["a","b"];
document.write(e.push("c"));//3
document.write(e);//a,b,c*/
var f = ["c","b","a","6"];
document.write(f.reverse());//6,a,b,c
</script>
Math对象
1.Math对象
执行常见的算数任务
2.常用方法
round():四舍五入
random():返回0-1之间的随机数
max():返回最高值
min():返回中的最低值
abs():返回绝对值
<script>
// document.write(Math.round(2.5));//3
// document.write(Math.random());
// document.write(parseInt(Math.random() * 10))//0-9整数
// document.write(Math.max(1,2,10,3));//10
// document.write(Math.abs(-10));//10
</script>