目录
1 javaScript是什么?
javaScript是网景公司开发的一种基于客户端浏览器、基于面向对象、事件驱动式的网页脚本语言,可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
注:javaScript(脚本语言)与java语言(编译语言)没有任何关系,也不是一个公司开发的
2 JavaScript特点
1 解释性脚本编写语言。2 基于对象的脚本编程语言3 简单性。4 安全性。5 动态性。6 跨平台。
主要体现在:交互式操作、表单验证、网页特效、web游戏、客户端脚本语言
- HTML:它是整个网站的骨架。
- CSS:它是对整个网站骨架的内容进行美化(修饰)
- Javascript:它能够让整个页面具有动态效果。
3 JavaScript组成部分
JavaScript发展史:
1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase
2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript
3. 1996年,微软抄袭JavaScript开发出JScript语言
4. 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式。
JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)
- ECMAScript:它是整个 javascript 的核心,包含(基本语法、变量、关键字、保留字、数据类型、语句、函数等等)
- DOM:文档对象模型,包含(整个 html 页面的内容)、
- BOM:浏览器对象模型,包含(整个浏览器相关内容)
3 ECMAScript使用方式
3.1 与html结合方式
方式1:内部js;
<head>
<meta charset="UTF-8">
<title>1-js与html结合的方式</title>
<!-- 1 内部js-->
<script>
alert("hello world");
</script>-->
</head>
<body>
<input type="text" name="username" id="usernmae">
</body>
</html>
方式2:外部js
创建a.js文件
alert("你好");
<head>
<meta charset="UTF-8">
<title>1-js与html结合的方式</title>
<!-- 2 外部js-->
<script src="./js/a.js"></script>
</head>
<body>
<input type="text" name="username" id="usernmae">
</body>
3.2 注释
注释必须写在<script>标签中
- 单行注释://注释内容
- 多行注释:/*注释内容*/
<script>
//单行注释
/*
多行注释
*/
</script>
3.3 变量
变量:一小块存储数据的内存空间。语法:var 变量名 = 初始化值;
typeof运算符:获取变量的类型。 注:null运算后得到的是object
Java语言是强类型语言,而JavaScript是弱类型语言。
- 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
- 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
<head>
<meta charset="UTF-8">
<title>3 js变量</title>
<script >
// 1 定义变量
var a=3;
alert(a);
var a="abc";
alert(a);
var obj=null;
document.write(obj+" - 数据类型是:"+typeof obj+"<br>");
</script>
</head>
3.4 数据类型
3.4.1 原始数据类型(基本数据类型):
- number:数字。 整数/小数/NaN(not a number 一个不是数字的数字类型)
- string:字符串。 字符串 "abc" "a" 'abc'
- boolean: true和false
- null:一个对象为空的占位符
- undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
列:
<head>
<meta charset="UTF-8">
<title>3 js变量</title>
<script >
//2 定义number数据类型
var num=1;
var num2=1.1;
var num3=NaN;
document.write(num+" - 数据类型是:"+typeof(num)+"<br>");//输出到页面
document.write(num2+" - 数据类型是:"+typeof (num2)+"<br>");
document.write(num3+" - 数据类型是:"+typeof (num3)+"<hr>");
//3 定义string数据类型
var str="abc";
var str1='efg';
document.write(str+" - 数据类型是:"+typeof str+"<br>");
document.write(str1+" - 数据类型是:"+typeof str1+"<hr>");
//4 定义boolean类型数据
var flag=true;
document.write(flag+" - 数据类型是:"+typeof flag+"<hr>");
//5 定义null类型的数据
var obj=null;
document.write(obj+" - 数据类型是:"+typeof obj+"<br>");
//6 定义undefined类型的数据
var obj1=undefined;
var obj2;//果一个变量没有给初始化值,则会被默认赋值为undefined
document.write(obj1+" - 数据类型是:"+typeof obj1+"<br>");
document.write(obj2+" - 数据类型是:"+typeof obj2+"<hr>");
</script>
</head>
4 运算符
运算符有6种:一元运算符、算数运算符、赋值运算符、比较运算、符逻辑运算符、三元运算符
4.1 一元运算符
一元运算符:只有一个运算数的运算符。共有四种( ++,-- , +(正号), -(负号))
<script>
//1 ++ --: 自增(自减) ++(--) 在前,先自增(自减),再运算 ++(--) 在后,先运算,再自增(自减)
var num=3;
var a=++num;//++(--) 在前,先自增(自减),再运算
document.write(a+" - "+num+"<br>")
var num1=3;
var aa=num1++;//++(--) 在后,先运算,再自增(自减)
document.write(aa+" - "+num+"<br>")
//2 +(-):正负号 在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
var b=+"123adc"; //string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
document.write(b+" - "+typeof b+"<br>")
var flag=+true;//boolean转number:true转为1,false转为0*/
var f=+false;
document.write(flag+" - "+typeof flag+"<br>")
document.write(f+" - "+typeof f+"<br>")
</script>
4.2 算数运算符
算数运算符有:+ - * / %
<head>
<meta charset="UTF-8">
<title>6 算数运算符</title>
<script>
var a=3;
var b=4;
document.write(a+b+"<br>")
document.write(a-b+"<br>")
document.write(a/b+"<br>")
document.write(a*b+"<br>")
</script>
</head>
4.3 赋值运算符
赋值运算符有: = , +=, -+....
4.4 比较运算符
比较运算符: > < >= <= == ===(全等于)
类型相同:直接比较 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。如:“123”==1234 结果为false 类型不同:先进行类型转换,再比较。 如:“123”==123 结果为true | |
===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false |
<head>
<meta charset="UTF-8">
<title>7 比较运算符</title>
<script>
document.write((3>4)+ " --- > 3>4<br>");//类型相同:直接比较
document.write(("abc" < "acd") +"<br>");//类型不同:先进行类型转换,再比较
document.write(("123" == 123) +"<br>");
document.write(("123" === 123) +"<br>");//===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
</script>
</head>
4.5 逻辑运算符
逻辑运算符有3种:&& || !
列:其他类型使用逻辑运算符
4.6 三元运算符
语法:表达式? 值1 : 值2; 判断表达式的值,如果是true则取值1,如果是false则取值2;
<head>
<meta charset="UTF-8">
<title>9 三元运算符</title>
<script>
var a=3;
var b=4;
var c=a>b?a:b;
document.write(c)
</script>
</head>
5 流程控制语句
流程控制语句有5种:1. if...else... 2. switch: 3. while 4. do...while 5. for
5.1 if...else...
<script>
//求1~100的和
var sum=0;
for (var i = 0; i <=100; i++) {
sum+=i;
}
document.write(sum);
</script>
5.2 switch
在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)
在JS中,switch语句可以接受任意的原始数据类型
<head>
<meta charset="UTF-8">
<title>12 js语法 switch语句</title>
<script>
// var a=1;
// var a=1.1;
var a=null;
var a=undefined;
switch (a) {
case 1:
case 1.1:
case NaN:
document.write("number类型");
break;
case "1":
document.write("string类型");
break;
case true:
document.write("boolean类型");
break;
case null:
document.write("null类型");
break;
case undefined:
document.write("undefined类型");
break;
}
</script>
5.3 while
<script>
//求1~100的和
var sum = 0;
var num = 1;
while (num <= 100) {
sum += num;
num++;
}
document.write(sum);
</script>
5.4 do...while
5.5 for
列:乘法口诀表
<head>
<meta charset="UTF-8">
<title>14 乘法表</title>
<style>
td {
border: 1px solid gray;
}
</style>
</head>
<body>
<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>