【JavaScript】基础知识
什么是JavaScript?
JavaScript是一门基于面向对象和事件驱动的脚本语言,运行在客户端的浏览器上,通过JavaScript,可以让页面实现一些动态的效果,例如表单验证、选项卡、导航等效果;
特点:基于面向对象;
事件驱动:当有事件发生的时候,才会执行相应的处理程序;
脚本语言:需要嵌入到html文档中才能运行;
解释执行:由浏览器解释执行;
JavaScript与Java有什么关系?
就名字中包含了Java单词
JavaScript与Html结合方式
位置一:
Html内部嵌入js(保证语法正确的情况下,可以在任何地方写)
1、<head>嵌入js代码</head>
2、<body>嵌入js代码</body>
<script type = "text/javascript" > document.write("hello world !~"); </script>
Html可以引入外部js文件,但
一定要在<head></head>标记内引入<head> <title>js的第一练习</title> <script src="js/test01.js" type="text/javascript"></script> </head>
function hello()
{
alert("大家好 哈哈 !~");
}
<script src="js/test01.js" type="text/javascript"> document.write("坚决不能这样用!~"); </script>
js中的注释
1> 单行 //
2> 多行 /* 多行 */
3>
如果某些浏览器不支持JavaScript,可以使用如下方式,来忽略js代码
<script type = "text/javascript" > // 单行注释 /* 多行 注释 */ <!-- document.write("hello world !~"); //js代码 //--> document.write("hello world !~"); </script>
常量
在程序执行的过程中,不能改变
<script type="text/javascript"> 10,20 </script>
变量
在程序执行的过程中,能够进行修改 --> 分为:
全局变量、局部变量
JavaScript 的变量声明: var 变量名 [=初始值]; var name="zhansan"; var age;
<script type="text/javascript"> var a = 10; var b = 20; var sum = a+b; document.write("a和b的和为:" + sum); </script>
数据类型
布尔型:true(非零、非空) 和 false(0,null)
对象类型:按钮、文本框……
<script src="js/test01.js" type="text/javascript"> // 所有变量都可以使用var声明 var a = "abc"; var b = 1; var c = 2; var sum = b + c; </script>
标识符
为 变量、函数等 起的名字,是由字母、数字、下划线、$构成。
注意:标识符首字母不能为数字。
关键字
例如: if、else、function……
变量命名规则 -- > 驼峰命名法
合法的命名 错误的命名 var 1abc ="a";
命名要尽量有意义 var name = "zhansan";
当变量名由多个单词组成的时候,第一个单词首字母要小写 ,其他单词的首字母要大写
命名的时候不能使用关键字,并且命名区分大小写
运算符
+、-、*、/、%(取余)
关系运算
>、<、>=、<=、!=、==(数值相等)、===(全等 数值、类型)
逻辑运算
与 &&:有一个为假的时候,结果就是假
或||: 两个都为假的时候,结果才是假,其他情况都是真
非!: 假则真 真则假
赋值运算
=、+=、-=、*=、/=、%=
自加、自减
++ 自加 -- 自减
var a=10;//数值型变量 var b=5;//数值型变量 var c= a++;//先赋值在加1 document.write("a = "+a); var d= ++a;//先加1在赋值
输出:a = 11
三目运算
构成: 布尔类型 ? 值1:值2; true ---> 值1 false---> 值2
运算的优先级
注意:可以用 ()来改变优先级
程序的控制结构
顺序结构:按照顺序执行的程序结构
if 分支结构
// 第一种
if(布尔类型表达式){
//代码序列
}
// 第二种
if(布尔类型表达式){
//代码序列1
}
else{
//代码序列2
}
// 第三种
if(布尔类型表达式1){
//代码序列1
}
else if(布尔类型表达式2){
//代码序列2
}
else if(布尔类型表达式3){
//代码序列3
}
……
else{
//代码序列n
}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } var number = Math.floor(Math.random()*10);// 随机幸运数字 document.write(number+"<br />"); if(number>=8){ document.write("今天您很幸运,中了500万英镑!~"); } else if(number>=4&&number<=7){ document.write("今天您比较幸运,中了50英镑!~"); } else{ document.write("不好意思,你得交500元罚款!~"); } </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
效果:
switch 分支结构
从上到下顺序执行
当switch中的常量表达式k的值与case 后的值相等时,执行后面的语句块;
当所有的case的值都不与switch中的常量表达式k的值相等时,执行default后面的语句块;
当case后面的语句块中没有break的时,会一直执行其下方的case,直到遇到break为止。
注意:
1)default 可以省略;
2)default 顺序可以任意放置;
3)case 后面一定是常量;
switch(常量表达式k)
{
case 值1:语句块1;
case 值2:语句块2;
……
default:语句块n;
}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } var number = Math.floor(Math.random()*10);// 随机幸运数字 document.write(number+"<br />"); switch(number){ case 0: document.write("不好意思,你得交501元罚款!~"); break; case 1: document.write("不好意思,你得交502元罚款!~"); break; case 2: document.write("不好意思,你得交503元罚款!~"); break; case 3: document.write("不好意思,你得交504元罚款!~"); break; case 4: document.write("今天您比较幸运,中了55英镑!~"); break; case 5: document.write("今天您比较幸运,中了56英镑!~"); break; case 6: document.write("今天您比较幸运,中了57英镑!~"); break; case 7: document.write("今天您比较幸运,中了58英镑!~"); break; case 8: document.write("今天您很幸运,中了500万英镑!~"); break; case 9: document.write("今天您很幸运,中了500万英镑!~"); break; default : document.write("不可能出现!~"); } </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
效果:
循环结构
While 循环结构(“当型”循环结构)
while(布尔类型的表达式)
{
//循环体;
}
// 当表达式为某个数值时,则永真(永远执行)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } //求 1-10累加和 var sum = 0; var i = 8; while(i<=10){ sum += i++; sum = sum + i++; <!-- sum = sum + i; //等价sum += i;--> <!-- i++;--> <!-- document.write(sum+"<br />");--> } document.write(sum+"<br />"); </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
效果:
do……while 循环结构(“直到型”循环结构)
注意:
不论while中的布尔类型的表达式是真或是假,
do里面的循环体至少要执行一次,换句话来说就是,当条件为假时,要执行一次do中循环体。
do
{
//循环体;
}while(布尔类型的表达式)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } //求 1-10累加和 var sum = 0; var i = 100; do { sum = sum + i; //等价sum += i; i++; document.write(sum+"<br />"); }while(i<=10) document.write(sum+"<br />"); </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
效果:
for 循环
// 第一种
for(语句1;布尔型表达式;语句2)
{
//循环体;
}
// 步长
for(;布尔型表达式;语句2)
{
//循环体;
}
for(;布尔型表达式;)
{
//循环体;
}
for(;;)
{
//循环体;
}
for(;true;)
{
//循环体;
}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } //求 1-10累加和 var sum = 0; for(i=1;i<=10;i++) { sum += i; document.write(sum+"<br />"); } document.write(sum+"<br />"); </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
效果:
continue与break
continue:跳过某一次循环
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } var sum = 0; for(i=1;i<=3;i++) { if(i==2) { continue; //跳出某一次循环 } sum += i; document.write(sum+"<br />"); } document.write(sum+"<br />"); </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
效果:
break: 结束循环
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } //求 1-10累加和 var sum = 0; var i=1; for(;true;)//语句3 步长 省略语句1、2、3 { if(i>10) { break; //结束循环 } sum += i; document.write(sum+"<br />"); i++; } document.write(sum+"<br />"); </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
函数(function)
函数定义
function 函数名(形式参数) {
函数体;
}
函数名、变量名符合标识符的要求即可;尽量起有意义的名字。JavaScript的标识符和Java中的标识符是相同的。
函数名(实际参数);
// 在html标签中应用需要添加""
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <!-- <script type="text/javascript" src="js/Index.js"></script>--> <!-- 内部编写js--> <script type="text/javascript" language="javascript"> function hello(){ alert("大家好 !~"); } function fn(a,b,c){ // arguments 表示调用函数时,所传递的实际参数,是一个数组 alert(arguments.length); // 弹框提示总数 for (var i = 0 ; i < arguments.length ; i ++ ){ alert(arguments[i]); // 遍历数组弹框 } } fn(1,2,3,4,5); //alert(arguments.length); // 这一行代码有错误,因为 arguments 只能在函数内部使用 </script> </head> <body> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js练习</title> <!--引用外部js--> <script type="text/javascript" src="js/Index.js"></script> <!--内部编写js--> <!-- <script type="text/javascript" language="javascript">--> <!-- function hello()--> <!-- {--> <!-- alert("大家好 !~");--> <!-- }--> <!-- </script>--> </head> <body> <script type="text/javascript" language="JavaScript"> <!--页面输出--> document.write("JS输出:hello world !~"); var a = "abc"; // 声明变量 var b = 1; var c = 2 window.alert("内部js弹出~ "); // 打开页面弹出 <!-- alert(a); //连续弹出--> <!-- alert("b+c = " + (b+c)); // 运算--> alert(b>c); // 比较 document.write("<br/>"); // 换行 document.write(true && false); // 验证与 document.write("<br/>"); // 换行 document.write(true || false); // 验证或 document.write("<br/>"); // 换行 document.write(!(true)); // 验证非 document.write("<br/>"); // 换行 </script> <p>哦呦</p> <!--点击按钮弹出警告框--> <input type="button" onclick="hello();" value="弹出警告框"> </body> </html>
function hello() { alert("大家好 哈哈 !~"); }
效果 :
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------