前言
JavaScript是面向Web的编程语言。绝大多数现代网站都使用了JavaScript,并且所有的现代Web浏览器——基于系统、游戏机、平板电脑和智能手机的浏览器均包含了JavaScript解释器。JavaScript是前端开发必须掌握的三种技术之一,分别是描述网页内容的HTML、描述网页样式的CSS以及描述网页行为的JavasScript。
JavaScript除了语法看起来和Java相似以外,JavaScript和Java是两种完全不同的编程语言。JavaScript早已超出了其"脚本语言"本身的范畴,而成为一种集健壮性、高效性和通用性为一体的编程语言。
插入JS代码
引用JS外部文件
写入JS代码需要使用<script>标签在HTML网页中插入JavaScript代码,<script>标签要成对出现,并把JavaScript代码写在<script></script>之间。
<script type="text/javascript"> 表示在<script></script>之间的是文本类型(text),javascript是为了告诉浏览器里面的文本是属于JavaScript语言。
我们可以把HTML文件和JS代码分开,并单独创建一个JavaScript文件,其文件后缀通常为.js,然后将JS代码直接写在JS文件中。在JS文件中,不需要<script>标签,直接编写JavaScript代码就可以了。JS文件不能直接运行,需嵌入到HTML文件中执行,我们需要在HTML中添加代码(<script src="script.js"></script>)就可以将JS文件嵌入到HTML文件中。
<html>
<head>
<script src="script.js"></script>
</head>
<body></body>
</html>
alert("JS代码"); //script.js文件
JS在页面中的位置
我们可以将JavaScript代码放在HTML文件中任何位置,但是我们一般放在网页的head或者body部分。
最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分;当JavaScript代码放在<body>部分的时候,JavaScript代码在网页读取到该语句的时候会执行。
<html>
<head>
<script type="text/JavaScript"> //js代码,内嵌式方式写入
</script>
<script src="code.js"></script> //js代码与html分离式写法
</head>
<body>
<script type="text/JavaScript">
//js代码,内嵌式方式写入
</script>
</body>
</html>
JavaScript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时实现按照先后顺序,所以前面的script就先被执行,后面的script就后被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求。
语句和符号
JavaScript语句是发给浏览器的命令。这些命令的作用是告诉浏览器要做的事情。每一句JavaScript的代码格式:
语句;
一行结束就被认定为语句的结束,通常在结尾加上一个分号";"来标识语句的结束。
注意:";"分号要在英文状态下输入,同样,JS中的代码和符号都要在英文状态下输入;虽然分号";"也可以不写,但为了养成良好的编码习惯和为了代码规范,还是要记得在语句末尾写上分号。
<script type="text/javascript">
alert("hello!");
</script>
注释
注释的作用是提高代码的可读性,帮助自己和别人阅读和理解你所编写的代码,注释的内容不会在网页中显示。注释可分为单行注释和多行注释。为了方便阅读,注释内容一般放到需要解释语句的结尾处或周围。
单行注释,在注释内容前加符号"//"。
多行注释"/*"开始,以"*/"结束。
<script type="text/javascript">
document.write("单行注释使用'//' "); //单行注释
document.write("多行注释使用/*注释内容*/");
/*
多行注释
*/
</script>
变量
变量是用于存储某些数值的存储器。我们可以把变量看作一个盒子,为了区分盒子,可以用BOX1、BOX2等名称代表不同盒子,BOX1就是盒子的名字(也是变量的名字)。
定义变量使用关键字var
var 变量名;
var name; //声明一个变量name
var name1,name2; //声明多个变量name1,name2
变量赋值
我们使用"="给变量存储内容
//声明变量name并赋值
var name = "Jackson"
//或者声明和赋值分开来写
var name;
name = "Jackson";
表达式
表达式是指具有一定的值,用操作符把常数和变量连接起来的代数式。一个表达式可以包含常数和变量
变量可以任意取名,但需要遵守命名规范:
变量必须使用字母、下划线(_)或者美元符($)开始;
可以使用任意多个字母、数字、下划线或者美元符组成;
不能使用JavaScript关键词与JavaScript保留字。
注意:在JS中区分大小写;变量虽然可以不声明直接使用,但是不符合规范,规范写法需要先声明后使用。
数组
一个变量只能存储一个内容。一个数组变量可以存放多个数据。数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多的值。
创建的新数组在没有赋值之前都是空数组,没有值,输出显示undefined;虽然创建数组时指定了数组长度,但实际上数组都是变长的,也就是说即使指定了固定长度,数组仍然可以将元素存储在规定长度以外的范围。
length属性:length属性表示数组的长度,即数组中元素的个数。语法(array.length;).
因为数组的索引总是由0开始的,所以一个数的上下限分别是0-(length-1)。如果数组的长度是5,数组的上下限分贝是0和4。
/*创建一个新数组,存储在array变量中;
var array:保存数组的变量;new Array();
创建一个新的空数组;*/
var array = new Arrya();
//创建数组同时赋值,数组存储的数据可以是任何类型
var array = new Array(10,20,30,40,50);
判断语句(if...else)
当if内部条件成立时候执行if括号中的代码,带条件不成立的时候执行else中的代码。
<script>
var i = 1024;
if(i>10){
//满足i>10这个条件后运行的代码块
}else{
//当不满足i>10这个条件后,运行这部分代码块内容
}
</script>
函数
函数是完成某个特定功能的一组语句。我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数。这样省去了编写重复代码的问题。
定义函数的方法:
function 函数名(){
函数代码;
}
function是定义函数的关键字;"函数名"是我们为函数取的名字;"函数代码"替换为完成特定功能的代码。
函数定义好后是不会自动执行的,需要直接在需要的位置写函数就OK了。
常用属性方法
document.write()可用于直接向HTML输出流写内容,直接在网页中输出内容。输出内容有几种方式来实现,第一种是输出内容用括号括起,直接输出括号内的内容;第二种是通过变量输出内容;第三种是输出多项内容,内容之间用加号连接;第四种输出HTML标签,并起作用,标签使用括号括起。
<script type="text/javascript">
document.write("输出内容用括号括起,直接输出括号中内容。");
var str = "通过变量输出内容";
document.write(str);
var mstr = "输出多项内容";
document.write(mstr + "内容用加号连接");
var hstr = "输出HTML标签,并起作用,使用括号括起"
document.write(hstr + "<br>");
document.write("JavaScript!")
</script>
alert()可以实现我们访问网站时候突然弹出小窗口的效果,上面写着一段提示消息文字的效果。如果你不点击确定,就不能对网页做任何操作。
语法:alert(字符串或变量);
结果:按顺序弹出消息框。
alert弹出消息对话框,包括一个确定按钮;在点击对话框"确定"按钮前,不能进行任何其他操作;消息对话框通常可以用于调试程序;alert输出内容,可以是字符串或变量。
<script type="text/javascript">
var num = 30;
alert("直接输入字符串");
alert(num);
</script>
confirm消息对话框通常用于允许用户做选择的动作,包括一个确定按钮一个取消按钮。
语法:confirm(str); //str是提示文本,返回值是布尔值
注意:通过返回值可以判断用户点击了什么按钮;消息对话框是排它的,即用户在点击对话框按钮前,不能进行任何其他操作。
<script type="text/javascript">
var msg = confirm("这是个confirm消息对话框吗?");
if(msg == true){
document.write("嗯,这的确是个confirm消息对话框");
}else{
document.write("再想想~好好理解理解");
}
</script>
prompt消息对话框,通常用于询问一些需要与用户交互的信息。弹出消息对话框包含一个确定按钮、取消按钮与一个文本输入框。
语法:prompt(str1,str2); //str1:要显示在消息对话框中的文本,不可修改;str2:文本框中的内容,可以修改
返回值:点击确定按钮,文本框中的内容将作为函数返回值;点击取消按钮,返回null。
var name = prompt("Please input your name:");
if(name != null){
alert("hello "+ name);
}else{
alert("hello ,what's your name?");
}
window.open()方法可以查找一个已经存在或者新建的浏览器窗口。
语法:window.open([URL],[窗口名称],[参数字符串]);
URL:可选参数,在窗口中要显示网页的地址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档;
窗口名称:可选参数,被打开窗口的名称,该名称由字母、数字和下划线字符组成;"_top"、"_blank"、"_self"是具有特殊意义的名称"_top"框架网页中在上部窗口中显示目标网页,"_blank"在新窗口显示目标网页、"_self"在当前窗口显示目标网页;相同name的窗口只能创建一个,要想创建多个窗口则name不能相同;name不能包含有空格。
参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。
运行结果要考虑浏览器兼容性的问题。
window.close()关闭窗口
用法:window.close();或者<窗口对象>.close();前者是关闭本窗口,后者是关闭指定窗口。
<script type="text/javascript">
var w = window.open('http://www.baidu.com');
//将新开的窗口对象,存储在变量w中
w.close();
</script>
对象
JavaScript中的所有事物都是对象,反应该对象某些特定的性质是对象的属性,能够在对象上执行的动作是对象的方法。
访问对象属性的语法:objectName.propertName; //对象.属性名
访问对象的方法:objectName.methodName(); //对象.方法名