简介
客户端脚本语言
运行在客户端浏览器中 每一个浏览器都有JavaScript的解析引擎
较早时候,客户端向服务器端上传表单, 表单的完整性以及数据的合法性是由服务器端进行判断的,效率低下;所以客户端脚本语言就应运而生了,直接在客户端对要上传的数据进行判断,那么就不用进行数据传送,提高效率。
所有的脚本语言都有BOM、DOM
注意script标签在HTML中的顺序,会影响代码的执行顺序,比如下面的代码中就会先弹出提示,然后再加载文本输入框
与HTML结合的两种方式
注释
//
/**/
数据类型
原始数据类型 五种 number、string、boolean、null、undefined
引用数据类型
变量
Java 强类型 在申请空间的时候要规定存放的数据的类型
JS 弱类型 在申请空间的时候不用规定存放的数据的类型
<script>
var a = 1;
document.write(a+"是"+typeof(a)+"类型的"+'<br>');
a = 'abc';
document.write(a+"是"+typeof(a)+"类型的"+'<br>');
document.write(a+"是"+typeof(a)+"类型的"+'<br>');
alert(a);
var num = NaN;
document.write(num+"是"+typeof(num)+"类型的"+'<br>');
var obj = null;
var obj2 = undefined;
var obj3;
document.write(obj+"是"+typeof(obj)+"类型的"+'<br>');
document.write(obj2+"是"+typeof(obj2)+"类型的"+'<br>');
document.write(obj3+"是"+typeof(obj3)+"类型的"+'<br>');
</script>
运算符
var a = +"123";
document.write(typeof(a)); // number
比较运算符
逻辑运算符
三元运算符
var a = b > c ? b;
特殊语法
流程控制语句
练习 打印九九乘法表
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS</title>
<style>
td{
border: 1px solid;
color: red;
background-color: aqua;
}
</style>
<script>
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(i+"*"+j+"="+i*j+" ");
document.write("</td>");
}
document.write("<br>");
document.write("</tr>")
}
document.write("</table>");
</script>
</head>
<body>
</body>
</html>
方法
定义方法的两种格式
function solve(a, b) {
document.write(a+b);
}
solve(2,5);
var solve2 = function (a, b) {
document.write(a+b);
}
document.write("<hr>")
solve2(6,8);
使用内置对象计算多个数的和
Array对象
常用方法
join方法、put方法添加元素
Data对象
var date = new Date();
document.write(date);
document.write("<hr>");
// 返回当前date对象对应的时间本地格式字符串
document.write(date.toLocaleString());
// 返回当前日期对象描述的时间到1970年1月1日零点的毫秒值差
document.write(date.getTime());
Math对象
Math对象不用创建直接使用
Math.PI
// 产生(0,1]之间的随机数
Math.random()
正则表达式对象
两种创建方式,其中第二种是比较常用的
var reg = new RegExp("^\\w{6,15}$");
var reg2 = /^\w{6,15}$/;
var str = "zhangjinghang";
alert(reg.test(str));
alert(reg2.test(str));
Global对象
编码原理
比如说是按照gbk进行编码的,那么就是一个汉字就是两个字节,16位二进制,转换成十六进制,然后加上百分号就ok,一个字节对应一个百分号
str = "张景航";
var encode = encodeURI(str);
document.write(encode+"<br>");
var s = decodeURI(encode);
document.write(s+"<br>");
parseInt方法 将字符串转换为数字,会从左向右逐个进行判断一直到不是数字为止,将前面的部分转换成为数字。
var n1 = parseInt("123hhh");//123
var n2 = parseInt("hhh123");//NaN
var n3 = parseInt("123");//123
eval方法
str3 = "alert('132')"; // 注意这里内外层不能使用同样的引号
eval(str3);
isNaN方法
var a = NaN;
alert(isNaN(a));// true
alert(a == NaN);// false