导读
1.JavaScript简
2.JS引入
3.变量和数据类型,运算符
4.正则表达式
5.数组
6.流程控制语句
7.函数
JavaScript简介
JS引入
1)可以直接在html中引入js, "javascript:alert('test');"
2)可以在head中或body中加script标签,引入js代码
eg:
<script type="text/javascript">
alert("2");
</script>
浏览器从上到下解析页面,包括js
3)引入独立的js文件
创建javascript.file文件
<script src="myjs.js" type="text/javascript"></script>
第一种实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS引入方式</title>
</head>
<body>
<a href="javascript:alert('运行了js');">运行js代码</a>
</body>
</html>
第二种实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS引入方式</title>
</head>
<body>
<script type="text/javascript">
alert("js解析");
</script>
</body>
</html>
第三种实例:
myjs.js
alert(34);
hala2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS引入方式</title>
</head>
<body>
<script src="myjs.js" type="text/javascript"></script>
</body>
</html>
变量和数据类型,运算符
变量的声明:
隐式声明: 变量名=值;
显式声明: 使用var关键字 var t = "haha";
可以一次声明多个变量 var i,j=1,k;
命名规则:
字母,下划线,美元符号,数字(首字符不能是数字)
不能使用关键字
变量名对大小写敏感
数据类型:
数值型:number 整型,浮点型
布尔型:boolean true,false
字符串:string 字符串常量用单引号或双引号括起来
未定义类型:undefined 声明并且未赋值前的类型
空值:v2=null;
数组:v2=[1,3,5,7,9];
类型转换:
数值型-->字符串
toString() eg:v4=1234.toString();
+:拼接,如果两个加数有一个是字符串,则表示拼接 eg:v4=1234+"";
字符串-->数值
parseInt():把从头开始符合格式的最大范围进行转换成整数,16进制可以识别如"0x13"=19
parseFloat()把从头开始符合格式的最大范围进行转换成浮点数,16进制无法识别
如果开头没有数字,会显示NaN(Not a Number)
运算符
正则表达式
对输入的内容判断是否符合一定规则时:可以利用正则表达式
利用js,在提交前或者输入后回车时进行判断是否符合规则
常用量词:
n+: >=1
n* >=0
n? <=1
n{x}:x个
n{x,y}:最少x个,最多y个
n{x,}:最少x个
^n:以...开头
n$:以...结尾
eg:定义一个正则表达式,匹配只能是数字,至少是一位的字符串
var reg = /^[0-9]+$/;
正则的使用:
判断是否符合正则:正则对象.test(字符串);
reg.test(str);
示例:
var reg = /^[a-z]+$/i; 忽略大小写
数组
数组的长度是可变的,由有意义值的最大下标+1
元素的类型可以是不同的
访问没有赋值的元素:值是undefined,不会出错
数组的定义:
var array = [1,2,3,4,5];
//创建对象的方式
array = new Array(1,2,3,4,5);
//定义一个空数组,没有元素
//array = [];
数组的使用:
下标:0~长度-1
长度:最大有值的下标+1
js不会出现数组下标越界异常,没有的就显示undefinded
流程控制语句
js的if,while,for语句的用法与java相同
同样,js中continue,break,代码块,try-catch与java相同
with语句
函数
函数的定义调用
函数的定义:有三种方式
注意:形参直接写名字,不需要加返回值类型
重点掌握方式1,方式2
//方式1:命名函数
function sum(num1,num2){
var result = num1+num2;
return result;
}
//方式2:匿名函数,重点,函数本质上也是一个对象
var add = function(num1,num2){
var result = num1+num2;
return result;
}
//方式3:利用Function类创建对象, new Function(形参列表,方法执行代码);
var add2 = new Function("num1","num2","return num1+num2;");
函数的调用:
方式1:对象.函数(实参);
如果没有指定对象,默认都是window对象,可以省略
window对象:所有直接定义的函数都是属于window对象的
eg:add2(1,2);
方式2:函数引用.call(调用者,实参1,实参2,...) 了解
alert(sum.call(window,1,2));
方式3:函数引用.apply(调用者,参数数组); 了解
alert(sum.apply(window,[3,6]));
变量
变量:全局变量和局部变量
全局变量:直接定义的显式变量,
无论在哪定义隐式变量都是全局变量
局部变量:在函数中显式定义的变量
全局变量:
使用范围,只要执行到了声明之后就可以使用
局部变量:
使用范围,只是当前函数,
如果全局变量和局部变量名字相同,在这个方法中直接使用的是局部变量,如果要用全局变量则要用对象调用一下,如window.result;
局部函数:
定义在其它函数中的函数
使用范围:所在的函数,声明之后的位置
在外界不能直接调用局部函数
只能通过调用它所在的函数,利用所在的函数调用它