概念:JavaScript是一门客户端脚本语言
运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎
脚本语言:不需要编译,直接可以被浏览器解析执行
JavaScript = ECMAScript + JavaScript(BOM+DOM)
功能:用来增强用户和html页面的交互过程,控制html元素,让页面有一些动态的效果,增强用户的体验。
ECMAScript:客户端脚本语言的编码标准,ECMA(欧洲计算机制造商协会)
1. 基本语法:
1. 与html结合方式
1. 内部JS:
定义<script>,标签体内容就是js代码
2. 外部JS:
定义<script>,通过src属性引入外部的js文件
注意:
<script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
<script>可以定义多个。
2. 注释
单行注释://注释内容
多行注释:/*注释内容*/
3. 数据类型:
1. 原始数据类型(基本数据类型):
1. number:数字。 整数/小数/NaN(not a number 一个不是数字的数字类型)
2. string:字符串。 字符串 "abc" "a" 'abc'
3. boolean: true和false
4. null:一个对象为空的占位符
5. undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
2. 引用数据类型:对象
4. 变量
变量:一小块存储数据的内存空间
Java语言是强类型语言,而JavaScript是弱类型语言。
强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
语法:
var 变量名 = 初始化值;
typeof运算符:获取变量的类型。
注:null运算后得到的是object
5. 运算符
1. 一元运算符:只有一个运算数的运算符++,-- , +(正号)
++ --: 自增(自减)
++(--) 在前,先自增(自减),再运算
++(--) 在后,先运算,再自增(自减)
+(-):正负号
注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
其他类型转number:
string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
boolean转number:true转为1,false转为0
2. 算数运算符
+ - * / % ...
3. 赋值运算符
= += -+....
4. 比较运算符
> < >= <= == ===(全等于)
比较方式
1. 类型相同:直接比较
字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
2. 类型不同:先进行类型转换,再比较
===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
5. 逻辑运算符
&& || !
其他类型转boolean:
1. number:0或NaN为假,其他为真
2. string:除了空字符串(""),其他都是true
3. null&undefined:都是false
4. 对象:所有对象都为true
6. 三元运算符
? : 表达式
var a = 3;
var b = 4;
var c = a > b ? 1:0;
语法:
表达式? 值1:值2;
判断表达式的值,如果是true则取值1,如果是false则取值2;
6. 流程控制语句:
1. if...else...
2. switch:
在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)
switch(变量):
case 值:
在JS中,switch语句可以接受任意的原始数据类型
3. while
4. do...while
5. for
7. JS特殊语法:
1. 语句以“ ; ”结尾,如果一行只有一条语句“ ; ”可以省略 (不建议)
2. 变量的定义使用var关键字,也可以不使用
用: 定义的变量是局部变量
不用:定义的变量是全局变量(不建议)
练习
Js与Html的结合方式
文件目录结构:
文件源代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Js与Html的结合方式</title>
</head>
<body>
<!-- 内部JS -->
<script>
alert("我是内部js,可以放在任何地方,只不过,我有影响程序执行顺序的能力,位置不同,执行顺序就不同");
</script>
<!-- 外部js -->
<script src="./js/myjs.js"></script>
用户:<input type="text" name="username" placeholder="请输入用户名">
</body>
</html>
myjs.js文件 :
运行结果:弹个框框
使用js实现99乘法表:
实现源码:
<!DOCTYPE>
<html>
<head>
<title>使用js实现99乘法表</title>
<style>
td{
border: 1px solid;
}
</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>
</body>
</html>
运行效果: