大力推荐一门好的网站:www.w3school.com.cn
概念
- 一门客户端脚本语言。
- 运行在客户端浏览器中。每一个浏览器都有JavaScrip的解析引擎。
- 脚本语言:不需要编译,直接就可以被浏览器解析执行了。
功能:
- 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
JavaScript发展史:
- 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase
- 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript
- 1996年,微软抄袭JavaScript开发出JScript语言
- 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式。
JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)
ECMAScript:客户端脚本语言的标准
1.基本语法
1.与HTML结合方式:
- 内部JS:定义<script>,标签体内容就是js代码
- 外部JS:定义<script>,通过src属性引入外部的js文件
- 注意:
- <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
- <script>可以定义多个。
2.注释:
- 单行注释://注释内容
- 多行注释:/* 注释内容 */
3.数据类型 :
- 数据类型分为原始数据类型和引用数据类型。
- 原始数据类型(基本数据类型相似):
- number :数字。-->整数/小数/NaN(not a number 一个不是数字的数字类型)
- string : 字符串。 字符串:"abc" "a" 'abc'
- boolean : true和false。
- null :一个对象为空的占位符。
- undefined :未定义。如果一个变量没有给初始值,则会被默认赋值为undefined。
- 引用数据类型:对象。
4.变量
- 变量:一小块存储数据的存储空间
- Java语言是强类型语言,而JavaScript是弱类型语言。
- 强类型:在开辟存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据。
- 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
- 语法:var 变量名 = 初始值;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--变量类型-->
<script>
//定义number类型
var num1 = 1;
var num2 = 1.12;
var num3 = NaN;
document.write(num1+"<br>");
document.write(num2+"<br>");
document.write(num3+"<br>");
//定义string类型
var str1 = "abc";
var str2 = 'def';
document.write(str1+"<br>");
document.write(str2+"<br>");
//定义boolean类型
var flag = true;
document.write(flag+"<br>");
//定义null,undefined
var obj = null;
var obi1 = undefined;
var obj2;
document.write(obj+"<br>");
document.write(obi1+"<br>");
document.write(obj2+"<br>");
</script>
</head>
<body>
</body>
</html>
页面显示:
- typeof运算符:获取变量的类型。
- 注:null运算后得到的是object。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--变量类型-->
<script>
//定义number类型
var num1 = 1;
var num2 = 1.12;
var num3 = NaN;
document.write(num1+"----"+typeof(num1)+"<br>");
document.write(num2+"----"+typeof(num2)+"<br>");
document.write(num3+"----"+typeof(num3)+"<br>");
//定义string类型
var str1 = "abc";
var str2 = 'def';
document.write(str1+"----"+typeof(str1)+"<br>");
document.write(str2+"----"+typeof(str2)+"<br>");
//定义boolean类型
var flag = true;
document.write(flag+"----"+typeof(flag)+"<br>");
//定义null,undefined
var obj = null;
var obi1 = undefined;
var obj2;
document.write(obj+"----"+typeof(obj)+"<br>");
document.write(obi1+"----"+typeof(obi1)+"<br>");
document.write(obj2+"----"+typeof(obj2)+"<br>");
</script>
</head>
<body>
</body>
</html>
页面显示:
typeof不是太重要,了解就行,不需要知道变量的类型
注释:您也许会问,为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
ECMAScript 原始类型 (w3school.com.cn)
5.运算符
- 一元运算符:一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中最简单的运算符。
- ++ --: 自增(自减)
- ++(--) 在前,先自增(自减),再运算
- ++(--) 在后,先运算,再自增(自减)
- +(-):正负号
- 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换。
- 其他类型转number:例如string类型转number:按照字面值转换,如果字面值不是数字,则转为NaN(不是数字的数字)
var a = +"abc";
alert(typeof (a));
alert(a);
页面窗口弹出的是:
- boolean转number:ture转为1,flase转为0.
ECMAScript 一元运算符 (w3school.com.cn)
- 算数运算符
(乘性运算符:* / %)
ECMAScript 的乘性运算符与 Java、C、Perl 等于语言中的同类运算符的运算方式相似。
需要注意的是,乘性运算符还具有一些自动转换功能。
乘法运算符由星号(*)表示,用于两数相乘。
ECMAScript 乘性运算符 (w3school.com.cn)
特殊行为看上面的网址查找
JS特殊语法:
1. 语句以;结尾,如果一行只有一条语句则 ;可以省略 (不建议)
2. 变量的定义使用var关键字,也可以不使用
用: 定义的变量是局部变量
不用:定义的变量是全局变量(不建议)
练习:99乘法表
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>练习:九九乘法表+边框</title>
<style>
td{
border: 1px solid;
}
</style>
<script>
document.write("<table align='center'>");
//1.完成基本的for循环嵌套,展示乘法表
for (var i = 1; i < 10; 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>")
}
//2.创建表格
document.write("</table>");
</script>
</head>
<body>
</body>
</html>