一、JavaScript简介
JavaScript已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行。
Javascript提供了基本的数据类型和特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
二、为什么要学JavaScript?
所有主流浏览器都支持JavaScript
目前,全世界大部分网页都使用JavaScript
它可以让网页呈现各种动态效果
三、正式学习JavaScript
- script标签 script标签可被放置在 HTML 页面的 和 部分中, 会告诉 JavaScript 在何处开始和结束。
<script>
JS代码在这里
html代码不能写在这里!
</script>
- document.getElementById( ) document.getElementById("id").style.color="color";
点我这个Button!
document.getElementById("h1").innerHTML="innerHTML可以替换HTML元素";
- 控制台输出
控制台输出:console.log() 清除控制台信息:console.clear()
- 注释
HTML注释: JavaScript注释://、/.../
- 数据类型
在 JavaScript 中有
5种不同的数据类型:string number boolean object function 3种对象类型:Object Date Array 2个不包含任何值的数据类型:null undefined 如果对象是 JavaScript Array 或 JavaScript Date,就无法通过typeof来判断他们的类型,因为都是返回Object。
- 变量声明
var a = 666; var b = "666 abc";
- 数组
var person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" };
- 函数
function(){ ... }
- 内嵌函数
JavaScript支持嵌套函数,嵌套函数可以访问上一层的函数变量。以下实例中,内嵌函数 plus() 可以访问父函数的 counter 变量。
function add() {
var counter = 0;
function plus() {counter += 1;}
plus();
return counter;
}
- 正则表达式
正则表达式(在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可用于所有文本搜索和文本替换的操作。
语法 /正则表达式主体/修饰符(可选),其中修饰符是可选的。 实例:var patt = /runoob/i
- try{ … } catch( ){ … }
try{
//在这里运行代码 throw...
}catch(){
//在这里处理错误信息
}
- void关键字
javascript:void(表达式) 中最关键的是 void 关键字,该操作符指定要计算一个表达式但是不返回值。
示例:
点击以下链接查看结果:
点我没反应! 点我!- typeof操作符
typeof操作符返回变量或者表达式的类型
document.getElementById("demo").innerHTML =
typeof "john" + "
" +
typeof 3.14 + "
" +
typeof false + "
" +
typeof [1,2,3,4] + "
" +
typeof {name:'john', age:34};
四、练习代码
- 获取id并设置color
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<p id="name1">我是丸子</p>
<p id="name2">我是丸子酱</p>
<script type="text/javascript">
document.write("Hello world!");
document.getElementById("name1").style.color="red";
document.getElementById("name2").style.color="pink";
</script>
</body>
</html>
- 引用外部JS文件 --------------------------------index.html--------------------------------
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>引用JS文件</title>
<script src="script.js"></script>
</head>
<body>
</body>
</html>
--------------------------------script.js------------------------------
//请写入JS代码
document.write("Hello wanzi!");
- 点击事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
<!-- start:Js exercise one -->
<h3 id="h1">这是丸子</h3>
<p id="p1">这是丸子酱</p>
<script>
document.write("<h3>这是秋丸子</h3>");
document.write("<p>这是秋丸子酱。</p>");
document.getElementById("h1").style.color="red";
document.getElementById("p1").style.color="pink";
document.getElementById("h1").innerHTML="innerHTML可以替换HTML元素";
document.write(Date());
function myFunction(){
alert("This is my first function!");
}
</script>
<br> <br>
<button type="button" onclick="myFunction()">点我!</button>
<br> <hr> <br>
<!-- end -->
<!-- start:Js exercise two -->
<p id="p3">what!!!</p>
<p id="p4">怎么回事?</p>
<button type="button" onclick="secondFunction()">点我啊</button>
<script>
a=4;
b=6;
console.log(a+b);//控制台 F12
//console.clear();
function secondFunction(){
document.getElementById("p3").innerHTML="小丸子,";
document.getElementById("p4").innerHTML="真可爱!";
}
</script>
<!-- end -->
</body>
</html>
- Javascript数据类型、数组、对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
<!-- start: Java数据类型 -->
<script>
var string1="qiaonima";
var string2="xiaolaodi";
var string3="nizenmehuishi?";
document.write(string1 + " ");
document.write(string2 + " ");
document.write(string3 + " ");
</script>
<!-- end -->
<!-- start: Java数组 -->
<p id="p1"></p>
<br>
<script>
var i;
var number=new Array();
number[0]="what";
number[1]="is";
number[2]="up";
number[3]="?";
for(i=0;i<number.length;i++){
document.write(number[i]+" ");
}
function addSpace(){
document.getElementById("p1").innerHTML="<br>";
}
</script>
<br><br><br>
<button type="button" onclick="addSpace()">增加空行</button>
<!-- end -->
<!-- start: Java对象 -->
<script>
var biaoqingbao=
{
first : "丸子,",
second : "你怎么",
third : "回事?"
};
function biaoQingbao(){
document.write(biaoqingbao.first);
document.write(biaoqingbao.second);
document.write(biaoqingbao.third);
}
</script>
<button type="button" onclick="biaoQingbao()">丸子</button>
<br>
<!-- end -->
<!-- start: JavaScript函数 -->
<br>
<script>
function returnNumber(num1,num2,num3){
document.write(num1+num2+num3);
}
</script>
<button type="button" onclick="returnNumber(1000,300,14)">caculate</button>
<!-- end -->
</body>
</html>
- switch() case
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
<!-- start -->
<p>今天是星期几?</p>
<p id="p1"></p>
<button onclick="myFunction()">点击这里</button>
<script>
function myFunction(){
var x;
var d=new Date().getDay();
switch (d){
case 0: x="今天是星期日";
break;
case 1: x="今天是星期一";
break;
case 2: x="今天是星期二";
break;
case 3: x="今天是星期三";
break;
case 4: x="今天是星期四";
break;
case 5: x="今天是星期五";
break;
case 6: x="今天是星期六";
break;
}
document.getElementById("p1").innerHTML=x;
}
</script>
<!-- end -->
</body>
</html>
- 正则表达式:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
<!-- start: search -->
<p>搜索该字符串中stupid的位置:</p>
<p id="p1">you are a stupid boy!</p>
<button onclick="searchStr()">search</button>
<script>
function searchStr(){
var str="you are a stupid boy!"
var n=str.search(/stupid/i);
document.getElementById("p1").innerHTML=n;
}
</script>
<br> <br>
<!-- end -->
<!-- start: replace -->
<p> 替换该字符串的"丸子" </p>
<p id="p2">丸子,你怎么回事?<p>
<button onclick="strReplace()">replace</button>
<script>
function strReplace(){
var str2="丸子,你怎么回事?";
var str3=str2.replace(/丸子/i,"小妹妹");
document.getElementById("p2").innerHTML=str3;
}
</script>
<br> <br>
<!-- end -->
<!-- start: RegExp对象 text() -->
<script>
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
</script>
<br> <br>
<!-- start: RegExp对象 exec() -->
<script>
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
</script>
</body>
</html>