二阶段第一周周总结
JavaScript的使用方式
方式1:js的内部方式
书写js语句
方式2:js的外部方式 实际开发中(前端开发人员开发使用的!)
需要在js文件夹中单独创建一个后缀为.js的文件
书写js代码,在当前html页面中将js文件导入即可!
例如:
javascript中的变量以及数据类型
定义变量的注意事项:
1)在js中定义变量,使用var来定义,var可以省略不写(刚开始,建议写上)
2)javascript是弱类型语言,它的语法结构不严谨! 可以重复定义变量的,后面的变量的值将前面的变量值覆盖掉
3)查看js的变量的数据类型,使用一个函数 typeof(变量名)
4)var可以任意数据类型!
js的基本数据类型
1)无论是整数还是小数,都是number类型, ---- js引擎会自动提升为 Number 对象类型
2) 无论是字符串还是字符,都是string类型----js引擎会自动提升为 String 对象类型
3)boolean类型----js引擎会自动提升为 Boolean 对象类型
4)object类型(创建一个对象 )---- js引擎会自动提升为Object对象类型
在Js中,Object对象代表所有js对象的模板!
for-in语句的格式
for(var 变量名 in 数组或者对象名称){
使用变量名;
}
Js中的函数定义以及调用
定义函数的 格式1
function 函数名称(参数名称1,参数名称2....){
函数的里面业务逻辑
直接在这输出document.write("xxx") ;
}
格式1调用:(单独调用)
函数名称(实际参数列表) ;
格式2:(推荐)
function 函数名称(参数名称1,参数名称2....) 函数的里面的业务逻辑
return 结果;
}
格式2调用:(赋值调用)
var 最终结果变量 = 函数名称(实际参数列表) ;
innerText和innerHTML属性有什么区别?
任何标签都有这俩个innerText和innerHTML。
这两个属性代表设置标签的文本内容
innerHTML可以加入html标签,可以被解析 (推荐)
innerText只是普通的文本内容,不能够解析html标签,如果加入html标签就会原封不动的解析成普通文本!
Js内置对象String
Js的String 对象
charAt(index):获取指定索引处的字符
concat(str) :字符串拼接功能
substring(beginIndex,endIndex):截取,从指定位置开始截取到指定位置接收(不包含endIndex,而是endIndex-1)
fontcolor 方法:给字符串颜色标记 ("参数英文单词或者#xxxxxx")
split 方法:拆分,分割,获取到的字符串数组
Js的自定义对象
使用js这种方式如何定义Person对象 ,还需要使用Js创建Person对象;(四种方式)
1)类似于Java中有参构造
2)类似于Java中的无参构造
3)使用Object对象(代表所有js对象)
4)字面值的方式: "Json数据格式" (后期的重点)
Js中DOM操作 (重点)
什么是DOM,核心思想 :获取元素对象(标签对象),改变标签对象属性
推荐的方式: (原生Js)
使用document的方法来获取标签对象 (4种方式)
1)document.getElementById("id属性值") ; 推荐
2)document.getElementsByClassName("所有的同名的class属性值") 获取的标签对象列表
3)docuement.getElementsByName("name属性值") ;获取的标签对象列表
通过标签名称获取标签对象
4)docuement.getElementsByTagName("同名的标签名称") ; 返回的标签对象列表
Js的常见的事件
点击相关的
单击事件 (重点) onclick
双击事件 ondbclick
焦点事件 (重点)
获取焦点 onfocus
失去焦点 onblur
选项卡发生变化的事件 (重点)
select标签 下拉菜单 onchange
option 下拉选项
鼠标经过事件 onmouseover
鼠标移出事件 onmouseout
页面载入事件 (重点)
Js正则表达式以及原生 Js的表单校验!(重点)
创建一个正则规则:var 正则对象名 = /书写正则语法/ ; 不完全匹配 (会出现安全漏洞!)
正则对象名.test(字符串),true,匹配成功,false,失败!
在Java语言中和在javascript中,如果要完全匹配,必须加入边界匹配器
^:以....开头
$:以...结尾
var 正则表达式对象 = /^ 正则语法 $/ ;
表单校验
举例:
//校验用户名
function checkUserName(){
//1)获取 用户名的内容 (id="username"的input标签对象同时获取内容)
var username = document.getElementById("username").value ;
//2)定义用户名的正则规则:用户名:4-14位的数字或者字母(不区分大小写)组成
var reg = /^[A-Za-z0-9]{4,14}$/ ;
//3)获取 id="userTip"的span标签对象
Var span = document.getElementById("userTip") ;
//4)正则表达式校验用户名的内容 username
if(reg.test(username)){
//成立
span.innerHTML = "√".fontcolor("green") ;
}else{
//不成立
span.innerHTML = "×".fontcolor("red") ;
}
}
数据库的 DDL 语句 ( 数据库的定义语句 ) 之库的操作 创建库 create database 库名 ; create database if not exists 库名 ; 查询创建库的字符集 show create database 库名 ; 修改库的字符集 alter database 库名 default character set 字符集名称 ; 删除库 drop database 库名 ; drop database if exists 库名 ; 如果存在这个库删除 数据库 DDL 语句 ( 数据库定义语句 ) 之建表 , 修改表 , 查询表 , 删 除表 ... 建表之前 , 必须使用哪个库 use 库名 ; create table 表名 ( 字段名称 1 字段类型 1, 字段名称 2 字段类型 2, ... ... 字段名称 n 字段类型 n ) ; 查询当前库中有哪些表 show tables ; 查看表的结构 desc 表名 ; 修改表的字段名称 alter table 表名 change 旧字段名称 新的字段名称 以前的字段数据类型 ; 修改表的字段类型 modify alter table 表名 modify 字段名称 新的字段类型 ; 修改表 : 给表中添加一个新的字段 alter table 表名 add 字段名称 字段类型 ; 复制一张表create table 新表名 like 旧表名;
删除表 drop table 表名 ; drop table if exists 表名 ; DML 语句 : 数据库操作语句 给表中插入数据 插入数据的语法 1: insert into 表名 values ( 值 1, 值 2, 值 3, 值 4... 值 n ) ; 插入数据的语法 2: 插入部分字段 , 没有插入的字段 , 默认值就是 null, 也支持一次性插入多条数据 insert into 表名 ( 字段名称 1, 字段名称 2.... ) values ( 值 1, 值 2... ) ; DML 语句之修改表记录 语法 1: update 表名 set 字段名称 = 值 where 条件 ; 语法 2: 一次性修改多个字段 update 表名 set 字段名称 1 = 值 , 字段名称 2 = 值 2.... where 条件 ; 语法 3: 不带条件 属于批量修改 ( 部分场景可以用的 ) update 表名 set 字段名称 = 值 , 字段名称 2 = 值 2.... DML 语句之删除表的记录 delete from 表名 where 条件 ; 注意 : 带条件删除记录 ( 使用的非业务字段 id 删除 ) delete from 表名 : 删除全表数据 truncate table 表名 ; 删除全表数据 面试题 : DML 语句中的 delete 和 truncate 的区别 ? 共同点 : 都是可以删除全表的记录的 ; 不同点 : delete from 表名 ; 仅仅只是将表的全部记录删除了 , 表还在 ! 它针对 id( 非业务字段 : 设置主键并且自增长 ), 它不影响自增长主键的这个值 ; ( 数据库约束后面 讲 ) truncat table 表名 ; 将表所有数据删除 , 而且还会把删除之后 , 自动创建一个张一模一样的表 , 影响自增主键的值 ! DQL 语句 : 数据库的查询语句 1 ) 查询全表数据 : select * from 表名 ; * 代表所有字段 , 仅仅是自己玩的时候可以用 , 实际开发中不能用 * , 需要写上全部的字段名称 实际开发中查询全部字段 , 把字段名称全部写上 2 ) 查询全部字段的时候 , 给字段起一个别名 as ' 别名名称 ' , as 省略 3 ) 当表的名称比较长的时候 , 可以给表名起一个别名 4 ) 字段冗余 ( 重复度大 ) 字段去重 DISTINCT 后面跟上字段名称 DQL 语句之条件查询 where 关键字 1) 使用赋值运算符 =, 比较运算符 <,<=,>=,>,!=, mysql 中的不等于 <> 2)Java 中逻辑运算符 :&&,|| mysql 推荐使用 and , or 也可以优化为 in( 值 1, 值 2, 值 3.. 值 n);in 集合语句 3) 针对两个范围查询 : 可以使用 &&, 可以使用 and, 也可以 " 字段名称 between 值 1 and 值 2" 4) mysql 中判断某个字段为 null, 使用的语法是 is null 判断某个字段不为 null, 使用的语法是 is not null 5) 关于 int 类型字段求和的时候 , 注意 : int 类型的值 + null 值 = null; mysql 提供函数 ifnull( 字段名称 , 值 ); 如果字段名称是 null, 给一个默认值 DQL 语句之 where 条件后面加入模糊查询 --- 关键字 like select 字段列表 from 表名 where 字段名称 like '%xxx%' ; %: 代表任何多个字符或者某个字符 ( 使用居多 ): 网站门户系统 ---" 搜索商品 " , 模糊搜索 _: 代表某个单个字符 聚合函数查询 : 针对 int 类型 : 单行单列数据 select 聚合函数 from 表名 where 还可以指定条件 ; count( 字段名称 ): 查询表中记录 , 字段名称使用都是 id, 非业务字段 avg( 字段名称 ): 查询这个字段中平均值 sum( 字段列表 ): 求和函数 max( 字段名称 ): 最大值 min( 字段名称 ): 最小值 DQL 语句之分组查询 :group by select 字段列表 from 表名 group by 分组字段名称 ; 注意事项 : 1) 查询的字段列表中可以使用 分组字段 2)group by 之后不能使用聚合函数 带条件分组查询的语法 : where 条件 必须放在 group by 之前 , 否则语法错误 ! select 字段列表包含分组字段 , 聚合函数 .. from 表名 where 条件 group by 分组字段 ; 筛选查询 having where 条件 ,group by,having 必须先有条件 , 分组 , 然后才筛选 ! 注意 : 筛选的后面可以使用聚合函数 ,group by 的后面是不能使用聚合函数的 分页查询 limit select 字段列表 from 表名 limit 起始行数 , 每页显示的条数 ; 起始行数 : 从 0 开始算的 , 起始行数 = ( 当前页码 -1)* 每页显示的条数 数据库的备份和还原 方式 1: 图形界面化工具 方式 2: 命令行 数据库的约束 概念 : 限制用户操作数据库的一种行为 ( 非法行为 ) 1) 默认约束 default : 如果某个字段没有插入数据 , 那么默认约束起作用了 2) 非空约束 not null, 当前这个字段值不能为 null 3) 唯一约束 unique ( 属于一种 index : 索引 ) 4) 主键约束 primary key( 非空且唯一的 ) 一般和 auto_increment( 自增长约束 ) 使用多一些 -- 设置在 id 非业务字段上 5) 外键约束 foreign key,加入外键约束 : 修改和删除是很麻烦 , 需要先修改或者删除从表数据 , 然后修改 / 删除主表数据本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
