• js的一些基础


    事件对象:
    就是用来存储事件相关的信息
    事件对象存储信息有:
    事件的类别,如:click,keydown等等
    点击事件的位置
    点击的哪一个键
    等等
    用于阻止事件流,用于阻止浏览器默认动作(表单提交、a标签跳转等)
    ie 678
    通过关键词event获取
    标签对象.onclick = function() {
    window.event // 关键词 里面存放了事件相关的信息
    }
    主流
    标签对象.onclick = function(evt) { // 实战工作event - evt -> e
    evt
    }
    作用
    监听表单提交
    阻止浏览器默认动作
    阻止事件流
    记录鼠标位置
    事件委托
    通过js给页面新增的标签/元素/节点,要注意默认没有任何事件,需要单独设置
    可以使用事件委托将事件委托给父元素注册
    正则
    是什么
    又成规则表达式,描述了匹配字符串的规则
    由我们自己来书写 “规则”,专门用来检测 字符串 是否符合 “规则” 使用的
    我们使用一些特殊的字符或者符号定义一个 “规则公式”,然后用我们定义好的 “规则公式” 去检测字符串是不是合格
    能干嘛
    对表单域项目(用户名、密码、邮箱、qq号码、手机等等)进行验证
    内容替换、获取
    网络爬虫(一个网站到另一个网站的页面上去获取对方的相关信息)
    最最最常用:表单验证
    var regexp = /正则表达式/可选修饰符
    var regexp = new RegExp(“正则表达式”,可选修饰符)
    语法:正则.test(字符串)
    返回:判断正则表达式是否匹配成功 成功-true,失败-false
    语法:正则.exec(字符串)
    返回:匹配符合正则表达式条件的数据 成功-数组,失败-null
    元字符
    . : 匹配非换行的任意字符
    : 转译符号,把有意义的 符号 转换成没有意义的 字符,把没有意义的 字符 转换成有意义的 符号
    s : 匹配空白字符(空格/制表符/...)
    S : 匹配非空白字符
    d : 匹配数字
    D : 匹配非数字
    w : 匹配数字字母下划线
    W : 匹配非数字字母下划线
    限定符
    * : 前一个内容重复至少 0 次,也就是可以出现 0 ~ 正无穷 次
    + : 前一个内容重复至少 1 次,也就是可以出现 1 ~ 正无穷 次
    ? : 前一个内容重复 0 或者 1 次,也就是可以出现 0 ~ 1 次
    {n} : 前一个内容重复 n 次,也就是必须出现 n 次
    {n,} : 前一个内容至少出现 n 次,也就是出现 n ~ 正无穷 次
    {n,m} : 前一个内容至少出现 n 次至多出现 m 次,也就是出现 n ~ m 次
    ^ : 表示开头
    $ : 表示结尾
     
    () : 限定一组元素
    [] : 字符集合,表示写在 [] 里面的任意一个都行
    [^] : 反字符集合,表示写在 [^] 里面之外的任意一个都行
    - : 范围,比如 a-z 表示从字母 a 到字母 z 都可以
    | : 或,正则里面的或 a|b 表示字母 a 或者 b 都可以
    i : 表示忽略大小写
    这个 i 是写在正则的最后面的
    /w/i
    就是在正则匹配的时候不去区分大小写
    g : 表示全局匹配
    这个 g 是写在正则的最后面的
    /w/g
    就是全局匹配字母数字下划线
    es6
    声明变量
    var 变量名 = 变量值; //声明变量,函数作用域
    let 变量名 = 变量值; //声明变量,块级作用域(ps. 作用域内不能重复定义)
    const 变量名 = 变量值; //声明常量 (ps. 不能修改)
    解构赋值
    let [变量1=默认值1,....,变量n=默认值n] = [值1,....,值n];
    let {键1:变量1=默认值1,....,键n:变量n=默认值n} = {键1:值1,....,键n:值n}; 键和变量名一样,可简写
    模板语法
    通过反引号包住大段HTML
    通过${变量名}包裹变量(可选)
    箭头函数
    (参数1,...,参数n) => {}
     
    set(去重) 和 map
     
    class类
     
    json 格式
    将 对象或数组格式的字符串转换为 原格式,语法:JSON.parse(字符串格式的数组或对象)
    将 数组和对象转换为 字符串 语法:JSON.stringify(数组或对象)
    this具体应用
    A普通函数调用 this => window对象 function 函数名() 函数名()
    B对象函数调用 this => 对象 var obj = {属性名:function(){}}
    C事件处理函数调用 this => 事件源对象(你操作了谁)
    D定时器调用 this => window对象
    E箭头函数中调用 this => 父function中的this 父没有就是window对象
    F bind/apply/call 你指定的
    面向对象
    是一种编程思想
    面向过程:就是将一个项目功能,分成若干个小功能或者子功能,然后从前向后一步步实现,最终完成项目。
    面向对象:就是将项目功能拆分成一个个小对象,每个小对象独立完成一个功能,可以通过“调用”多个对象实现项目功能(封装)。
    特性
    封装:功能封装,便于后期调用,维护
    为了增加构造函数为成员的控制,会通过修饰符让一些数据不能被外部修改
    继承:减少了代码的冗余,省略了很多重复代码
    通过继承可以给构造函数添加成员,例如:创建好构造函数,去继承一个已经存在的对象
    继承单个成员:构造函数.prototype.成员名称 = 值;
    继承多个成员:构造函数.prototype = 对象;
    多态:不同的子类根据具体状况可以实现不同的方法,光有父类定义的方法不够灵活
    调用
    var 变量名 = new Object();
    变量名.键 = 值;
    创建
    function 函数名() {
    创建对象
    返回对象
    推荐首字母大写 例如系统构造函数
    通过this.键 = 值 添加成员
    不需要返回对象 后期通过new 关键词创建即可
    }
    原型
    就是js给函数提供的一个功能空间,来存放公共数据
    好处:减少内存空间的浪费占用
    怎么存:构造函数名.prototype.成员 = 值 或 构造函数名.prototype = 值
    对象怎么读:对象.成员 (先去自己里面找,找不到原型对象中找也就是公共空间)
    ​ 对象.__ proto__.成员
    原型链
    多个原型对象的集合
    使用对象属性先用自己,找不到
    .__proto__查找, 找不到
    再去 .__proto__ 里面找
    一直找到 Object.prototype 里面都没有,那么就会返回 undefiend
     
    PHP简介
    是什么:就是一个语言
    能干吗:可以写动态网页
    有点:和java比开发快,节约成本
    运行环境
    WAMP架构
    LAMP架构
    操作系统不同:window、linux
    搭建运行环境
    手动搭建:Apache、MySQL、PHP
    自动搭建(一键安装包):phpstudy、wampserver
    配置项目
    <VirtualHost _default_:80>
    ServerName 网址(去修改host文件 声明网址对应哪一台服务器)
    DocumentRoot "项目存放目录"
    <Directory "项目存放目录">
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
    </Directory>
    </VirtualHost>
    是什么:就是一个语言
    能干吗:可以写动态网页
    有点:和java比开发快,节约成本
    WEB相关概念
    什么是服务器:没有显示器的主机,放在机房
    IP地址
    计算机一个唯一的标识,通过这个标识/编号可以相互访问
    域名/网址:方便用户记忆,但最终还是走ip
    DNS域名服务器:其实就是一个文件,记录网址对应哪一个ip地址
    端口号:门牌号,计算机有很多软件,通过端口号可以明确交给哪一个处理
    web服务器几乎都是:80
    MySQL:3306
     
    PHP语法
    声明变量 $变量名 = 变量值;
    判断 if(条件){}elseif (条件) {} .... else {}
    循环while for do...while
    循环foreach($数据 as $键=>$值) {}
    函数 function 函数名($形参1,...,$形参n) {}
     
    MySQL数据库
    作用:用来存放网站数据
    navicat是什么:就是管理数据库的软件
    navicat快捷键
    关闭窗口 ctrl+w
    设计表:ctrl + d
    执行sql语句:ctrl +q
    增:insert into 表名 (字段名....) values (值....)
    删:delete from 表名 [where 条件]
    改:update 表名 set 字段名=字段值,....字段名n=值n [where条件]
    查:select * from 表名 [where条件]
    PHP操作数据库
    连接数据库:$pdo = new PDO('mysql:dbname=数据库名', '账号', ‘密码’)
    增删改 $rs = $pdo->exec(SQL语句) // result rs 返回受影响的行数
    查:
    $pdoStatement = $pdo->query(SQL语句)
    $data = $pdoStatement->fetch(PDO::FETCH_ASSOC)
    $datas = $pdoStatement->fetchAll(PDO::FETCH_ASSOC)
    输出语句
    var_dump(数据或变量名)
    echo '<pre>'; print_r(数据或变量名)
    echo 用来输出基本类型数据
    基本类型输出用echo
    复杂数据类型print_r或var_dump 打印数据类型用var_dump 不用数据类型print_r
    echo '<pre>'; print_r(数据或变量名)
    echo 用来输出基本类型数据
    基本类型输出用echo
    复杂数据类型print_r或var_dump 打印数据类型用var_dump 不用数据类型print_r
    接口
    就是一个文件,可以是js/php/json等 只要返回json数据(就是js大括号对象)
    1-数据角度:可以实现网站数据动态化,2-功能角 笑话接口等
    1-自己写,2-去百度接口平台
     
    cookie
    取:document.cookie
    存:
    document.cookie = ‘键1=值1; expires=时间’
    ....
    document.cookie = ‘键n=值n; expires=时间’
    var d = new Date()
    d.setTime( d.getTime() + 3600*1000*24*天数);
    d.toUTCString()
    h5存储
    localStorage.setItem(键,值)
    localStorage.getItem/removeItem(键)
    sessionStorage.setItem(键,值)
    sessionStorage.getItem/removeItem(键)
    都是存储网站数据,从而减轻后端压力,加快网站访问速度。
    区别
    1性能2存储空间3存储时间
     
    http
    什么是http:就是一个协议/规则
    作用:客户端如何请求服务端,服务端如何响应给客户端
    请求(request)
    响应(response)
    请求:请求行、请求头、请求体
    响应:响应行、响应头、响应体
     
    AJAX
    异步请求(ajax):允许客户端和服务端 无刷新通信的技术。
    特点:不用刷新页面
    好处:减轻服务器压力,用户体验度更好
    // 步骤1:创建ajax对象:
    var xhr = new XMLHttpRequest();
     
    // 步骤2:时时监听ajax状态
    xhr.onreadystatechange = fn
     
    // 步骤3:创建HTTP请求头
    xhr.open(请求类型POST/GET,请求地址URL,[异步true或者同步false])
     
    // 注:POST请求必须设置请求编码,不然后端无法解析获取数据
    xhr.setRequestHeader( "content-type", "application/x-www-form-urlencoded" );
     
    // 步骤4:发送请求
    xhr.send(POST请求则为POST请求数据/GET请求则null)
    function fn() {
    //只要ajax状态改变就打印
    if (xhr.readyState == 4 && xhr.status == 200) {
    alert(xhr.responseText);
    }
    }
    比如走http协议,也就是通过web服务器来访问
    get请求 参数在地址栏 格式 :xxx.后缀?键1=值1&...&键n=值n
    post请求 参数 send(键1=值1&...&键n=值n)
    post请求 xhr.setRequestHeader 必须在 xhr.open后面
     
     
    同步和异步概念:
    同步: 指的就是事情要一件一件做。等做完前一件才能做后一件任务
    异步: 不受当前任务的影响,两件事情同时进行,做一件事情时,不影响另一件事情的进行。
    编程中:异步程序代码执行时不会阻塞其它程序代码执行,从而提升整体执行效率。

  • 相关阅读:
    php的cURL库介绍
    php函数ob_start()、ob_end_clean()、ob_get_contents()
    php中curl、fsockopen的应用
    App架构设计经验谈:服务端接口的设计
    图解正向代理与反向代理
    三种数据库连接池的配置
    数据库连接池在Tomcat中的几种配置方法
    Java四种线程池的使用
    JVM调优总结(一)-- 一些概念
    JVM调优总结(十)-调优方法
  • 原文地址:https://www.cnblogs.com/bahkkba/p/12369501.html
Copyright © 2020-2023  润新知