编程语言基础


  • 三层架构

    三层架构.png

  • 学习资源
    中文网站:菜鸟教程

    菜鸟教程.png

    英文网站:tutorialspoint
    tutorialspoint.png

  • 常见编程语言

    • 编程语言
      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);


      控制台日志F12.png
  • 变量

    • 目的:命令行之间交换数据
      ①命令行交换数据:局部变量
      ②方法之间交换数据:全局变量
      ③应用程序间交换数据:环境变量
      ④接口之间交换数据: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
对象.png
  • 对象事例
    对象事例.png
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 浏览器已完成页面加载
  • 运算符

    • 加、减、乘、除、取余(%)
    • 自增(++)、自减(--)、赋值运算符(+=)


      JavaScript赋值运算符.png

      JavaScript赋值运算符解释.png

    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

存取顺序没有固定

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351