JavaScript客户端脚本语言
-
概念:一门客户端脚本语言
- 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎
- 脚本语言:不需要编译,直接被浏览器解析,不需要编译也就是不需要和服务器交互,实际上就是浏览器客户端的自校验。
-
功能:
- 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
- 至此这个html和CSS和JavaScript三者的不同作用已经很清楚了。
-
发展史
- 通过发展史可以知道其包含三个部分目前。
- JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM),所以接下来的学习就分为三部分来学习。
-
ECMAScript
- 基本语法
- 与html结合的方式
- 内部的JS:定义script标签,标签体内容就是js代码
- 外部的JS :定义script,通过src属性引入外部的js文件
- 注意:1、script 可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。2、可以定义多个。
- 注释咋写
- 单行注释://
- 多行注释:/* */
- 数据类型有哪些
- 记得在java里面的数据类型分为两种,一种叫做基本数据类型,一种叫做引用数据类型。两者最大的区别就是在数据做为参数传递的时候,基本数据类型是值传递,而引用数据类型是引用传递(地址传递)。其次就是存储的地方不一样。同样的在这个里面的引用类型也有两种:1、原始数据类型(基本)。a、引用数据类型:对象。
- 1.number:数字,整数、小数、NaN
- 2.sting:“abc” ‘a’ ‘abc’ 单音双音无所谓
- 3.boolean
- 4.null
- 5.undefined:未定义。一个变量没定义则默认赋值为undefined
- 变量咋定义:内存空间
- 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
- 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
- 那么对于弱类型,怎么知道具体是什么类型呢。 通过方法typeof()得到
- 语法: var 变量名=初始化的值;
- 运算符有哪些:大概和java差不多的,不知道的就参考书查吧 逗哥特殊的全等于===
- 一元和三元运算符:只有一个运算数的运算符 ,像++只需要一个数就可以运算的
- +(正号)
- ? :,var c = a>b?1:0
- 注意:在JS中,如果运算数不是所要求的类型,那么js引擎会自动的将运算数进行类型转换。最注意的就是这个其他类型转 number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字),而且运算后的值依然是NaN。对应布尔值转number就是true为1,false为0.
- 这里说一下这个比较运算符:由于是弱类型,所以这个比较先比较类型,类型相同直接比较,对于字符串则按位比较,对于全等于===,先比较类型,类型不同则直接返回false。
- 一元和三元运算符:只有一个运算数的运算符 ,像++只需要一个数就可以运算的
- 流程控制语句
- if…else …
- switch:在java中,这个语句可以接受的数据类型byet,int ,short,char,string。但是在JS中可以接受任意的原始数据类型:代码如下
- 与html结合的方式
- 基本语法
<script>
// switch语句
var a=true;
switch (a){
case 1: alert("number");
break;
case 'abc': alert("string");
break;
case undefined: alert("undefined");
case true: alert("boolean");
case null: alert("null");
}
</script>
+ while
+ do...while
+ for
+ 特殊语法:如下代码
<script>
// 特殊语法:
/*
* 1.语句以分号结尾,如果一行只有一条语句,分号可以省略,但是不建议这么做
* 2.变量的定义使用var关键字,当然也可以不使用
* 区别在于定义的变量不一样,var定义的是局部变量,不用是全局变量,作用范围不一样
* */
var a=3;
alert(a)
b=4;
alert(b);
/*
变量的定义使用var关键字,当然也可以不使用
* 区别在于定义的变量不一样,var定义的是局部变量,不用是全局变量,作用范围不一样
* 意思在方法里面就可以定义了全局变量,但是不建议这样搞
* */
function fun() {
c=5;
}
fun()
alert(c);
</script>
- 案例九九乘法表:代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>99乘法表</title>
<style>
.td{
border: 1px solid;
}
</style>
</head>
<body>
<script>
document.write("<table align='center' width=\"50%\" >");
//1 基本的for循环嵌套,展示乘法表
for (var i=1;i<=9;i++){
document.write("<tr align='center'>");
for(var j=1;j<=9;j++){
if(i>=j) {
document.write("<td class='td'>");
// var value=i*j;
// alert(value);
//输出
document.write(i + "*" + j + "=" + (i * j) + ' ');
}
document.write("</td>");
}
document.write("</tr>");
document.write("<br>");
}
document.write("</<table>");
</script>
</body>
</html>
- Function:函数(方法)对象:
- 什么叫函数对象呢!在js中对象就是bai神一般的存在,什么都是对象,du你就这么理解好了。函数zhi是用来实现具体功能的代dao码,用一种方式把他们组织起来,就是函数了。对象是有属性和方法的一个东西,在对象中的函数就变成了方法
- 创建
- *var fun=new Function(形式参数列表,方法体)*错误创建方法
- 正确:function 方法名称(形式参数列表){
方法体
};
- 创建
//创建方式2
function fun2(a,b) {
alert(a+b);
}
fun2(3,4);
+ var方法名=function(形参列表){
方法体;
}
var fun3=function (a,b) {
alert(a*b);
}
fun3(3,4);
- 方法
- 属性
- 特点
- 方法定义时形参的类型不用写,写了也都是var
- 方法的覆盖要注意,注意别写重复了,不会报错的
- 方法是一个对象,名称相同的方法会覆盖
- 重要和特殊:在JS中,方法的调用值与方法的名称有关,和参数列表无关。在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数如下代码
function fun2(a,b) {
alert(a);
alert(b);
}
//下面传递参数的多样性
fun2(1,2);
fun2(10);//访问成功
fun2();
fun2(1,2,3);
- array对象
- Array
- Boolean
- Date
- Math
- Number
- String
- RegExp
- Global
这几个对象自己在w3school里面好好看看记一记就行。在此不拗述了。