目录标题
JavaScript
js 和java的关系:其实他们没有任何关系
概念:
一门客户端(浏览器)脚本语言,运行在我们的客户端,每一个浏览器都有js引擎
脚本语言:不需要编译,直接就可以被浏览器解释执行
最初用来验证表单
**功能:**增强用户和html的交互体验,2.可以控制html元素 3.让页面有动态效果,增强用户体验
起源
第一个脚本语言叫做 c-- 后更名scriptEase
NetSpace(网景) 开发liveScript ,后因与Sun合作,所以更名为JavaScript
微软,抄袭js开发JScript
ECMA指定ECMAScript(一套标准)
JavaScript = ECMAScript(标准) + BOM(js独有) + DOM(js独有)
ECMAScript 客户端脚本语言的标准
1.基本语法
- 与HTML结合
- 内部js
- 外部js
注意
script可以写在任何地方,但是推荐写在head标签
script可以有多个
注释
// 单行注释
/* */ 多行注释
数据类型
原始数据类型(基本数据类型)
1.number 数字类型,整数,小数,NaN(not a number 不是数字的数字类型)
2.string 字符串,“sss” , ‘ss’
3.boolean ture和false
4.null 一个对象为空的占位符
5.undefined未定义,如果一个变量没有给初始化值,就会被复制成undefind
判断类型用 typeof
引用数据类型 对象
变量
一小块存储数据的内存空间
java是强类型,js是弱类型
int i = 1 + 1; //2
var i = 1 + 1; //2
var i = 1 + "1"; // 11
var 变量名 = 初始化值;
typeof
获取变量的类型
运算符
1.一元运算符 ++ – + - 只有一个运算数的运算符
在js中,如果变量不是我们运算需要的类型,那么js引擎自动把运算数进行类型转换,其他类型转number。
string转number NaN(有字符的情况下),数字(无字符)
boolean true 转成1 false转成0;
2.算数运算符 + - * / %(取模,就是余数的意思)
3.赋值运算符 = += -=
4.比较运算符 > < >= <= == ===(全等于)
比较方式
1.类型相同:
字符串:根据字典(ASCII)来直接比
2.类型不相同
先进行类型转化,在进行比较
5.逻辑运算符 && || !
其他类型转化成boolean
1.number: 0 返回false,1和其他数字返回true
2.string: ”“返回false,其他返回true
3.null undefined 都是false
4.对象 true
6.三元运算符
?值1:值2
语法
表达式? 值1:值2;
逻辑控制语句
1.if…else
2.switch (java中,byte int shortchar js中,可以接受任何原始数据类型 number,string,boolean,null,undefined)
case1:
break;
3.while
4.do…while
5.for
js的特殊语法
js中可以不写分号,但是强烈不推荐
变量的定义需要var,但其实可以省略,强烈不推荐使用
区别
写的话:表示一个局部变量
不写:表示全局变量
案例:九九乘法表
<script type="text/javascript">
document.write("<table align='center'>");
for(var i = 1; i <= 9; i++){
document.write("<tr>");
for(var j = 1; j <= i; j++){
document.write("<td>");
document.write(j + "*" + i + "=" + i * j + "");
document.write("</td>");
}
document.write("<br/>");
document.write("<tr>");
}
document.write("</table>");
</script>
对象
方法对象 Function
创建
1.不用
var fun = new Function(参数列表,方法体)
2.
function 方法名称(形参){
方法体
}
3.
var 方法名 = function(形参){
}
Array对象 数组对象
1.创建数组
var arr = new Array(元素列表);
var arr = new Array(默认长度);
var arr = [];
2.push():往末尾添加新元素,并返回新长度
join(参数):根据参数把数组分割转换成字符串[1.2,3,4,5,]
Date 日期对象
Date 对象用于处理日期和时间。
可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象,有四种方式初始化日期:
new Date() // 当前日期和时间
new Date(milliseconds) //返回从 1970 年 1 月 1日至今的毫秒数
new Date(dateString)
new Date(year, month, day, hours,minutes, seconds, milliseconds)
Math数学对象
var math =new Math();
math.方法();
数学对象直接使用
random() 返回0到1的值,包含0,不包含1;
ceil()向上取整
floor()向下取整
round()四舍五入
案例
alert(Math.random());
alert(Math.PI);
RegExp 正则表达式 定义字符串的组成规则
单个字符 [] [a] [ab]
\转义符
\d 单个数字字符 [0-9]
\w 单个单词字符 [a-zA-Z0-9]
量词符号
? 出现0次或1次
* 出现0次或多次
+ 出现1次或多次
{m,n} 最少出现m次,最多出现n次
开始结束符号
^ 开始
$ 结束
案例
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//正则
var reg = new RegExp("^\\w{6,12}$");
var username = "wang";
//验证
var flag = reg.test(username);
alert(flag);
</script>
</head>
<body>
</body>
</html>
Global 全局对象
特点:不需要对象直接调用 方法名()
方法:encodeURI
decodeURI()
parseInt()
isNaN() 六亲不认,只要NaN参与的==全部返回false
eval()
案例
var string ="老肖";
var encode=encodeURI(string);
var decode=decodeURI(encode);
alert(encode);
alert(decode);