-
三层架构
-
学习资源
中文网站:菜鸟教程
英文网站:tutorialspoint
-
常见编程语言
- 编程语言
Java c++ .Net Python PHP HTML JavaScript - 应用分层
①前端页面
②网络
③服务器
④后端应用
⑤数据库 - 自动化编程语言
- 前端 JavaScript+html
- 服务器 shell
- 后端应用 Java
- 数据库 (PL SQL\存储过程)
- 编程语言
-
注释
- 单行://
- 多行:/* */
- 常见注释写法:
- 单行:
①数据库(--)
②Java、JavaScript(//)
③shell、properties配置文件(#) - 多行:
①数据库、Java(/* */)
②shell、xml、html()
- 单行:
-
打日志
- 等于是眼界
- 弹框提示:alert()
-
控制台日志F12:console.log(c);
-
变量
- 目的:命令行之间交换数据
①命令行交换数据:局部变量
②方法之间交换数据:全局变量
③应用程序间交换数据:环境变量
④接口之间交换数据:session
⑤jmeter组件之间交换数据:变量池 - 变量3个基本元素
①变量类型(申请一个存储空间,就会分配一个内存地址)
②变量名(给存储空间的内存地址命名)
③变量值(往存储空间存数据,用“=”赋值)
eg:
var x=5;
var y=6;
var z=x+y;
练习
单说元素
说元素和含义
一条语句,多个变量
可以在一条语句中申明很多变量。该语句以var开头,并使用逗号分隔变量即可:
var lastName="Doe",age=30,job="capenter";
- 目的:命令行之间交换数据
数据类型
中文名 | 英文名 | 符号 |
---|---|---|
字符串 | String | "abcd",'eeff' |
数字 | Number | 12.15,23 |
布尔类型 | Boolean | true、false |
空 | Null | |
未定义 | Undefined | var a |
数组 | Array | "sdf",123,true |
对象 | Object | var car={type:"fiat",model:500,color:"white"}; |
练习
- 看代码说类型
- 看类型说标识符
- 说类型中的中文名给英文名
var cars=["SddC","Volvo","BMW"]; - 取值用下标:
cars[0]="SddC"
cars[1]="Volvo"
cars[2]="BMW" -
对象
- 属性和方法
- this
- Object
- 属性:可以等于一个值
- 方法:等于一系列的命令行(动作)
- 对象:吧属性和方法封装成一个整体
eg:
①访问对象属性:对象.属性名
②访问对象方法:对象.方法名()
③对象都有默认的属性和方法,不同对象不一样
练习 :HTML元素对象,访问元素属性
var person{
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
person.age==50
-
对象事例
var document={
getElementById:
function(name){
return xxxx; }
};
document.getElementById("IdName");
其中document是浏览器内置写好的
-
函数function/方法method
- 方法的组成要素:
①类型申明:function
②方法名:自定义
③方法入参:()
④方法体:{}
⑤方法返回值:return
return什么都不返回,目的是终端后续命令 - 一个方法,如果没有return,就从第一行执行到末尾一行;如果有return,执行完return就不执行了
- eg
- 方法的组成要素:
function functonName(){
执行代码
}
function add(a,b){
return a+b;
}
add(3,4);
解释:
①add方法封装了命令行
②外部没法控制方法内部
③add(3,4)把数字给了add方法
④add方法想把3和4给内部方法使用,只能存到变量里面,所以定义a和b两个变量
⑤add内部命令行,可以通过a和b去取3和4-
作用域
- 方法内部命令可用方法外部的全局变量
- 方法外部命令不能用方法内部的局部变量
触发事件
触发事件 | 触发结果 |
---|---|
JavaScript方法 | onclick等事件 |
Java的接口方法 | 接口调用 |
Unix的shell脚本 | 手工执行脚本 或者crontab定时器自动调用 |
存储过程 | job定时器出发,手工执行 |
常见HTML事件
一些常见的HTML事件的列表
事件 | 描述 |
---|---|
onchange | html元素改变 |
onclick | 用户点击HTML元素 |
onmouseover | 用户在一个HTML元素上移动鼠标 |
onmouseout | 用户从一个HTML元素上移开鼠标 |
onkeydown | 用户按下鼠标 |
onload | 浏览器已完成页面加载 |
-
运算符
- 加、减、乘、除、取余(%)
-
自增(++)、自减(--)、赋值运算符(+=)
eg:
- a=5
- b="5"
- c=a+b;
- c=55;
练习:打印0-1500中的所有3的倍数
for(int i=0;i<=1500;i++){
if(i%3==0){
console.log(i+",");
}
}
-
比较 和 逻辑运算符
比较运算符:
==、>、<、>=、<=、!=(<>)逻辑运算符(返回布尔类型的值:true、false)
①&&并且/与(and)
②|| 或者/或(or)
③!非(not)
④true && false = false
⑤true || false= true条件运算符
variablename=(condition)?value1:value2
voteable=(age<18)?"年龄太小":"年龄已达到";
1个条件,2个值。当条件为真,取第一个值;当条件为假,取第2个值
是if。。。else。。。的简写
-
条件语句
只有当条件达到的时候,才执行封装的命令,不是无条件的执行- if 语句
- if...else 语句
- if...else if....else
- switch 语句
- switch case default
(switch是if else if else的特例,条件是某个变量=某个值的情况)
if (condition)
{
当条件为 true 时执行的代码
}
if (time<20)
{
x="Good day";
}
else
{
x="Good evening";
}
- switch...case...语句
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
与 case 1 和 case 2 不同时执行的代码
}
- 等价代码
if(n==1){
执行代码块 1
}else if(n==2){
执行代码块 2
}else{
与 case 1 和 case 2 不 同时执行的代码
}
- 引申
数据库中WHEN xx THEN xx
SELECT CASE STATUS WHEN 0 THEN '有效' WHEN 1 THEN '无效' ELSE '未知' END FROM `t_user_student`
-
循环
循环:就是确定循环次数,最小值、增量、最大值(如数到10000要多少次)
-
for
- for
- for in/each
-
while
- while
- do...while...
-
for循环
- 最大值、最小值、增量
for(var i;i<cars.length;i++){
document.write(cars[i]+"<br>");
};
- 步骤
①定义变量
②判断条件
③执行条件
④增量
⑤判断条件
for in/each循环:for循环特殊情况的简写版,必须满足条件,遍历所有项
for(vars xxx in cars){
documents.write(x+"<br>");
};
程序拆解
var i=0;
0<cars.length;
document.write(cars[0]+"<br>");
0++;
1<cars.length;
document.write(cars[1]+"<br>");
1++;
2<cars.length;
document.write(cars[2]+"<br>");
-
while循环
- 最小值,最大值,增量
for(var i=0;i<10;i++){
alert(i);
}
等价代码
var i=0;
while(i<0){
alert(i);
i++;
}
只能用while的情况
while(条件){
}
for循环是while循环的特例:知道循环次数的
for in/each循环是for循环的特例,全部遍历,增量为1
- eg:调用接口
do
{
Boolean result=调用接口();
}
while(result==false);
①先调接口
②调完接口判断result是否成功
③不成功,继续循环调用,一直调到成功为止
- 万物皆对象
person={firstName:"John",lastName:"Doe",age:50,eyeColor:"blue"};
替代语法
person=new Object();//构造器,构造方法
person.firstName="John";
person.lastName="Doe";
person.age=50;
person.eyeColor="blue";
this关键字,代表当前对象,在对象内部使用
var myObject={
firstName:"John",
lastName:"Doe",
fullName:function(){
return this.firstName+" "+this.lastName;
}
};
myObject.fullName();//返回"John Doe"
对象有默认的属性和方法,而且不同对象的默认属性和方法不一样
备注
万物皆对象
对象包含属性和方法
对象有自带的隐藏属性和方法
访问对象的属性:对象.属性名;
访问对象的方法:对象.方法名();
-
字符串(编程核心)
- 字符串也是对象,有自带属性
- var message="Hello World!";
-
var x=message.length;
字符串属性和方法
属性 | 最常用方法 | 其他方法 |
---|---|---|
.length .prototype .constructor |
indexOf()——定位第一次出现的位置 lastIndexOf()——定位最后一次出现的位置 replace()——将其中一小串替换成另一个字符串 split()——按分隔符分割成数组 substr()——截取其中一小串 subString()——截取 toLowerCase()——将英文字母转换成小写 toUpperCase()——将英文字母转换成大写 |
charAt() charCodeAt() concat() fromCharCode() match search() slice() valueOf() |
- eg
var message="Hello World!";
var x=message.toUpperCase();
-
数组对象Array
- 数组关键元素:[]、下标
- 创建数组
- 访问数组:数组名[下标]
- 数组名[下标]=新的值
- 数组关键元素:[]、下标
var myCars=["Saab","Volvo","BMW"];
myCars[2]="ben-z";;
常见方式 | 简洁方式 | 字面 |
---|---|---|
var myCars=new Array(); myCars[0]="Saab"; myCars[1]="Volvo"; myCars[2]="BMW"; |
var myCars=new Array("Saab","Volvo","BMW"); | var myCars=["Saab","Volvo","BMW"]; |
数组的属性和方法
属性:length
方法:indexOf(),根据值找下标
-
日期
- 日期对象:
- 属性:年、月、日、时、分、秒weekday(周几)
- 方法:各个值的get方法,字符串转日期,日期转字符串
- 获取当前时间:new Date();
- 日期的值(字符串)
- 日期的格式(字符串)
- 日期转字符串:日期+格式=字符串
- 字符串转日期:字符串+格式=日期
- 日期对象:
2017-06-31 21:03:24
yyyy-mm-ss HH:MM:dd
Date对象 | Date对象 |
---|---|
yyyy | 2017 |
MM | 03 |
dd | 24 |
HH | 21 |
mm | 06 |
ss | 31 |
2017-03-24 21:06:31
yyyy-MM-dd HH:mm:ss
存取顺序没有固定