01_JavaScript的函数
普通格式:function 函数名(a,b,c) { }
匿名函数
function (a,b,c) { }
示例: //定义 function sum(a,b) { return a + b; } //调用 var result = sum(1,2); alert(result);在js中方法就是对象
方法名就是指向方法对象的一个引用
在js中,如果没有显式的调用return返回值,那么返回值就是undefined
在js中没有方法重载
02_数组
元素可以是任意类型长度可以变化
JS中的数组看成是Java中的ArrayList
格式:
var 数组名 = new Array();
var 数组名 = new Array(长度);
var 数组名 = new Array(元素1,元素2);
var 数组名 = [元素1,元素2];
//遍历 var arr = ["hello","bigdata"]; for(var x = 0;x < arr.length;x++) { alert(arr[x]); }
03_数组案例1
定义一个函数,用来获取指定数组中的最大的元素function getMax(arr) { //定义一个参照物 擂台变量 var max = arr[0]; //遍历数组 for(var x = 1;x < arr.length;x++) { //使用数组中的元素和参照物进行比较 if(arr[x] > max) { //把数组中的元素赋值给参照物 max = arr[x]; } } return max; }
04_数组案例2
定义一个函数,用来获取指定数组中指定元素第一次出现的索引位置function getIndex(arr,element) { //遍历数组 for(var x = 0;x < arr.length;x++) { //获取数组中的每一个元素并与指定的元素进行比较 if(arr[x] == element) { return x; } } return -1; }
05_JavaScript的常用对象(Array)
Arrayjoin() 用于把数组中的所有元素放入一个字符串
toString() 方法可把数组转换为字符串,并返回结果。
push() 可向数组的末尾添加一个或多个元素,并返回新的长度
reverse() 用于颠倒数组中元素的顺序
定义一个js数组 [2,1,4,7,9,5],向里面添加8和11,然后在按照从小到大排序!!!
<script type="text/javascript"> var arr =[2,1,4,7,9,5]; function sortNumber(a, b){ return a - b; } //添加8和11 arr.push(8,11); alert(arr); //排序 arr.sort(sortNumber); alert(arr); </script>
06_JavaScript的常用对象(String)
StringcharAt() 可返回指定位置的字符
indexOf() 可返回某个指定的字符串值在字符串中首次出现的位置。
big() 用于把字符串显示为大号字体
//练习
将字符串"niubichengxuyuan"中的"cheng"截取出来并转换成大写
将字符串"What is you name"分割为字符串数组
var s = "niubichengxuyuan"; s = s.substr(5,5).toUpperCase(); alert(s); var s1= "What is you name"; s1 = s1.split(" "); alert(s1);
07_JavaScript的常用对象(全局对象)
全局对象描述全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。
通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。
全局对象不是任何对象的属性,所以它没有名称。
在顶层 JavaScript 代码中,可以用关键字 this 引用全局对象。但通常不必用这种方式引用全局对象
全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。
全局对象
全局方法
parseInt() 可解析一个字符串,并返回一个整数
parseFloat() 可解析一个字符串,并返回一个浮点数
isNaN() 用于检查其参数是否是非数字值
全局属性
08_案例(校验qq号码)
校验qq号码要求必须是5-15位
0不能开头
必须都是数字
function checkQQ(qq) { //要求必须是5-15位 var length = qq.length; if(length < 5 || length > 15) { return false; } //0不能开头 if(qq.charAt(0) == "0") { return false; } //必须都是数字 //遍历QQ号码(遍历字符串) for(var x = 0;x < length;x++) { //获取QQ号码的每一个字符 if(isNaN(qq.charAt(x))) { return false; } } return true; } var qq = "12345"; var flag = checkQQ(qq); alert(flag);
09_正则表达式的概述
概述:描述了一种字符串的匹配模式,
可以用来判断一个字符串是否符合指定规则
提供了一套完整的字符用来制定规则。
x代表x
y代表y
方括号 表示范围
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。 [0123456789]
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
元字符 预定义字符,这些字符有一些特殊的含义和作用
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。[a-zA-Z_0-9]
\W 查找非单词字符。
\d 查找数字。 [0-9]
\D 查找非数字字符。
量词 表示字符的数量
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n{1}
n 不加量词表示只能出现一次
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
10_使用正则表达式改写校验qq号码
function checkQQ(qq) { //创建正则表达式的对象 var reg = new RegExp("^[1-9][0-9]{4,14}$"); //校验QQ号码 var flag = reg.test(qq); return flag; } var qq = "123itheima45"; var flag = checkQQ(qq); alert(flag);
11_判断字符串”qaq”中间的字符是否是元音
元音:aeiou AEIOUvar reg = new RegExp("^q[aeiouAEIOU]q$"); var flag = reg.test(s);
12_事件
事件通常和JS的脚本代码组合使用,可以通过事件的发生来执行一段JS的脚本代码(函数)onclick 点击时触发
onchange 元素发生变化时触发
onkeydown 键盘按下时触发
onsubmit 表单提交时触发
13_BOM概述&window对象(对话框)
BOM浏览器对象模型,用于执行浏览器的相关动作,获取修改浏览器的地址信息,弹出各种对话框,打开关闭窗口
BOM常用对象
window
alert()
confirm()//带有确定取消按钮的对话框
prompt() //带有可输入文本框的对话框
open() //主要用于打开一个窗口
close()
setTimeout() //定时
history
location
14_window对象(其他方法)
open() //主要用于打开一个窗口close()
setTimeout() //定时
注意:只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭。这阻止了恶意的脚本终止用户的浏览器。
15_location对象
URL统一资源定位符,用于标识网络资源(图片、文件、HTML)在网络上的位置
http://www.itcast.cn:端口号/images/slidead/BEIJING/2017471909473900.jpg
http 网络协议
www.itcast.cn 域名,IP地址的别名
IP地址 网络设备在网络上的位置
端口号 应用在设备上的位置,web服务器
/images/slidead/BEIJING 路径
location
包含了当前页面的URL信息
属性
protocol//网络协议
hostname//主机名 IP地址
port//端口号
host//主机名+端口号
pathname//路径
href//完整的URL
16_history对象
包含了当前窗口用户访问过的URLback() //后退
forward()//前进
go()