html , css , js 小结

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000   //github详细教程https://www.cnblogs.com/specter45/p/github.html  
网道
虚拟 dom 减少重构 .不会重新渲染https://www.jianshu.com/p/616999666920
可重绘,少重构。
HTML和css 怎么匹配的 ,冲里面往外面
思考模式:3w+h
what why when how
书写规范   https://blog.csdn.net/relicemxd/article/details/52790954
https://blog.csdn.net/sinat_19803127/article/details/80524165
大的结构用id 
标签4大属性 ID class title style

css what cwaiascading style sheets 
    why 特点 维护。复用、HTML默认满足不了
    when 样式和布局
    how 3中方式(行内,外部,外部应用
    样式 顺序 
    网页三元素: 文字 图片 链接
    大小 颜色 形状

问题:可以继承的样式:https://www.cnblogs.com/thislbq/p/5882105.html  https://blog.csdn.net/hicoldcat/article/details/64443280

bfc形成方式 布局的进化  https://www.jianshu.com/p/acf76871d259
 


jq js css 张兴许(后半段。底成)

js功能和交互
什么是编程 程序 算法 解决问题的方式+存储(关系型数据库,非关系型数据库,对象性数据库)
es5/es6 DOM BOM
存储 表达式 流程控制 对象
var/ let const a=1; //栈(原始) string number boolean undefined null //堆(引用类型)object function array  垃圾清除

存储 内存开辟空间 如何开辟大空间 

var arr=[];批量存储
var a=2;//var a="he"
1:声明第三个变量的情况下
var c;
c=b;
b=a;
a=c;
var b=3; a和b交换 面试题:var a=2; var b=3; a=a+b;  b=a-b; a=a-b(:不声明第三个变量的情况下)
                                            不是  [a,b]=[b,a]  a=[b,b=a][0]; 第一个=执行最后往后//重前  console.log(a,b)      
    //数据     索引 关联数组    
    var arr=[]//存储的是地址arr(按值传递,按映入,闭包理解); arr[0]=12; arr['hz']='name'(关联数组) 索引 arr.length=1
    三目运算符的箱套。
    逆向思维
    for()知道次数 while(知道真假)
    
    JS所有内置对象属性和方法汇总 :https://segmentfault.com/a/1190000011467723    
    
    内置对象(array。api)增删改查
    增:push unshift concat slice splice 
    删:pop shift slice splice (strat,number,add)
    改:(内容)splice reverse sort forEach reduce map
    查:indexOf search lastIndexOf 
    
    面试:‘good’.good()//输出3个good    Tostring.prototype.good='打印3次
    '
    setTimeout(function(){console.log(2)},0) console.log(1) 1.2 //先所有的同步。在异步 100s(一定会执行吗//no)
    
    https://blog.csdn.net/dianligegege/article/details/81912319
    https://blog.csdn.net/dianligegege/article/details/81912435    js:面试题

    闭包:3种官方说法。一种机制作用域来讲(全局访问局部)   命名空间


    li 点击 

       funtion fn(n){
         item[n].onclick=function(){  //变量未释放。也是闭return包。
            alert(2)
}
}

扫描二维码关注公众号,回复: 3194930 查看本文章

    var cname="adfa’
    var obj={
        came:"obj",
        dose:function(){
         this.came='done'
         return function(){
                 return this.cname  //this.活动的指针  this就是对象 作用域在本作属性用域
}
}
}         
       alert(obj.dose().call(this)//())  wd 都是window环境执行   https://wangdoc.com/  网道


      try不一定执行(为真) catch(为假) finally(一定执行)
   
       //只有对象可以形成独立的空间

       //如何自定义事件()高级
       //跨域   同源策略 
       //jsonp 原理:src可以引入网上任何地方的资源(img)(ifame)(cors)
       //什么是跨域  what why when how
       
       
       
      jquery 链式结构(return)  添加方法 
      $.fn.[方法名]    hz()   $.extend({   //jquery 的extend 方法自定义事假
   selfFunc:function(){//定义一个自己的方法selfFunc
   }
});
      $解决   对象之间的转换  源码(看源码改bug)
       
      pc端
       模块化  组件化 模板
      angular(1,2)(ng)(双向数据绑定(循环。执行。监听),依赖注入,模块,指令系统。谷歌,大漠)  mvc设计思想、模型
      vue 生命周期:
      vue 双向数据绑定(原理:)其原理大致是这样:  数据劫持  发布订阅模式;   https://www.cnblogs.com/libin-1/p/6893712.html
                                 object.defineProperty() 对象的访问器属性
                                在数据渲染时使用prop渲染数据
                                将prop绑定到子组件自身的数据上,修改数据时修改自身数据来替代prop
                                watch子组件自身数据的改变,触发事件通知父组件更改绑定到prop的数据
                                这样做的好处是:父组件数据改变时,不会修改存储prop的子组件数据,只是以子组件数据为媒介,完成对prop的双向修改。,
            指令系统
            虚拟dom(react) 
            vue(实例) 弱势  中下型
      react(fb)(专利) (单项数据流,组件化 偏向ui(交互))。数据操作不行   交互这块   //
      angular2 横空出世 :谷歌+微软(都有):强势植入(把页面改成内置对象(dom)) 大型项目
      typeScript(微软)es6de 超集  把 js变成强类型  bable(准换为es5) $ gulp default  或$ gulp
      es6 promise.then.then ;resolve reject
      node.js 内置对象和之定义对象   记忆宫殿
      
      
     移动端:
     
     ng ionic 移动端框架 bs   简单(Ctrlc ctrlv)。cordave phoneGap(集成硬件);先看一边:(内置模块和自定义模块)。第二遍:demo。第三遍:直接写。查(不记)
      
     react  reactNative(基于状态 改变)  and ios 兼容
     
     vue 移动端框架
     
     
     
     移动端  分类 web app(有网) , hybrid app(混合app当道), native app(游戏,速度快,原生。少了。俩个团队ios 和 anfiod)
     
     //不会不能说  百度是什么(看3篇) 看官方文档  demo 开源项目
     
     单页页面应用的弊端(vue):不利于seo优化...   缓存 
     
     //高类聚 低耦合 原型的优劣
     
     webpack(打包.压缩) gulp   交互协议 http https tcp/ip udp (ftp)  webSocket
     
    
     微信:
      
       公众号(订阅号,服务号,企业号(like钉钉)) 小程序  第三方登录   https://open.weixin.qq.com/  白璐时代
       
       微信的文档 介绍 第三方软件 项目
       
     小程序:  
     
     一、微信开发的整体介绍
开放平台:https://open.weixin.qq.com/
公众平台: 
1、微信开发的种类
①移动应用开发
支持微信的分享、收藏、支付三大功能,原生开发的人员去使用的开发类别
②网站应用开发
网站支持使用微信账号进行注册和登录,从而来实现:提高用户的留存率,方便不同账号的统一(结合unionId)
③公众账号开发

④公众账号第三方平台
优势在于免繁琐设置,方便小白用户去使用。

2、公众账号开发
①服务号
主要偏向于给用户提供查询服务(招商银行、麦当劳。。)
显示在好友列表,每个月只能群发4条消息

②订阅号
主要偏向于给用户提供资讯(朝闻天下、Web前端。。)
显示在订阅号文件夹内,每天都可以群发1条消息

③小程序
    2017年1月9号 (2007年1月9号 推出iphone)
基于微信的平台,ui提供了很多组件,js提供了很多接口

(微信官方的小程序:小程序示例,包含了微信官方封装好的组件、以及封装好的接口)

目标:万物互联 (IOT),  二维码
开放范围:(不包含个人)
http://www.wxapp-union.com/forum.php?mod=viewthread&tid=495

https://mp.weixin.qq.com/debug/wxadoc/dev/index.html

    数据存储和服务器:
两种解决方案 ①腾讯云(不到100) ②godaddy  3. 推荐阿里云

④企业号
主要是建立起 企业与人的关系,提供信息、和企业相关的定制功能

温馨提示:
1)如果想简单的发送消息,达到宣传效果,建议可选择订阅号;
2)如果想进行商品销售,进行商品售卖,建议可申请服务号;
3)如果想用来管理内部企业员工、团队,对内使用,可申请企业号。
4)订阅号可通过微信认证资质审核通过后有一次升级为服务号的入口,升级成功后类型不可再变。
5)服务号不可变更成订阅号。

3、九大类高级接口

语音识别接口
客服接口
OAuth2.0 网页授权接口
生成带参数的二维码接口
获取用户地理位置接口
获取用户基本信息接口
获取关注者列表接口
用户分组接口
上传下载多媒体文件接口


+ 微信支付
(十大类接口的使用,必须是认证过的服务号和订阅号才能使用)


4、正式环境的搭建
(公众账号-》订阅号)

购买自己的域名(万网、dnsPod、godaddy)
购买申请主机空间(新浪云、阿里云、腾讯云、大米云、godaddy、aws)
注册订阅号
登录到订阅号管理接口、服务器的配置、调用10大类接口

5、测试环境的搭建
(公众账号-》订阅号)

主机空间(新浪云)
注册订阅号
登录到订阅号管理接口、服务器的配置、调用10大类接口

6、注册订阅号
①填写邮箱、密码
②到邮箱中激活账号
③选择类型
④登记信息(个人、组织、媒体、企业。。)
⑤填写公众号的信息(名称、介绍、头像)

二、个人订阅号(jssdk)

1、实现功能:统计页面被访问的次数

分析:
①存储需要持久保存的数据
数据库、文件系统、内存中:fileSystem
②读写过程
读:file_get_contents($fileUrl);
写:file_put_contents($fileUrl,$content);

需要apache启动

2、新浪云storage

通过bucket管理我们的文件,如何访问?
saestor:// testbucket/count.txt


3、jsSDK的使用步骤
①绑定域名
②引入js文件
③注入接口(将使用接口的名称,写在config方法中jsAPIList这个数组中)
④在ready中调用接口
⑤在error中处理失败的异常情况

sample.zip有4个文件,
前两个文件都是用来存储数据的,jssdk.php进行网络请求以及数据的读写操作,sample.php文件主要完成接口的注入和调用

jssdk.php封装了2个方法get_php_file、set_php_file,如果部署在服务端,写文件会出现权限拒绝的问题。
①将存储文件 放到新浪云的bucket中
②修改读写文件的路径为 saestor://bucketName/**.php


require subscribe 需要订阅测试账号。


三、版本控制工具(git)

1、版本控制
记录一个或者多个文件内容变化,以便于未来查询指定的版本信息。

svn 集中式/git  分布式
①防止代码的丢失
②团队协作
③版本还原
④更好的管理代码

2、git介绍
用于代码的版本控制,使用方式:命令行/图形化

git(分布式版本控制工具)与github(托管开源项目的网站,托管项目的方式采用的是git)

3、自己使用git将项目上传到github

①申请github的账号 
https://github.com/
注册账号,在选择计划的时候选择continue,在编辑经验时选择skip跳过。
②去邮件激活账号
③start project 只需要指定repository的名称,点击create去创建。
④安装git
一路next,最后点击install安装 去选所有的勾选就可以了。
⑤启动git
到所有程序中,找到git,找到gitbash,点击启动

⑥基础命令
ls (list) 查看当前目录下的文件
clear 清除当前的屏幕信息
pwd (print the work directory)显示当前目录
mkdir web1609 在当前的路径中创建一个叫做web1609的目录
cd web1609 (change directory)
touch a.txt 创建一个叫做a.txt的一个文件

通过电脑中的文件系统找到文件,写上了hello git.

git的用法

git init 初始化仓库
git status 查看仓库的状态
git add a.txt 将a.txt添加到代码仓库
git commit -m '第一次提交'     添加到缓存区

配置上传到github上的用户信息:
git config --global user.name "web1609best"
git config --global user.email "[email protected]"

设置完账号之后,重新提交:
git commit -m '第一次提交'     添加到缓存区

mark man


0.5年精通前端,学习后端
0.5年-2年 80%前端,20%写后端。精通后端

人手(1-2) 人才(3-5) 人物(50起)

b(浏览器)(开发工具/浏览器解析代码)    s(服务器) (浏览器url 发送请求过来)

s 后端语言 文件 
           data数据库

1:data数据库(怎么存储3w+h,why 关系(table)/非关系 /对象性数据库) (mysql,maraydb(mysql2)(免费) oricle(java付费.转账(thinking),银行,政府),关系型数据),代表table (son公司java,)

非关系 mongodb(集合)(传过来就行,要求不严格)  区块链(做存储。虚拟货币)

2文件:.exe(mirosoft.可执行的二进制文件)  .html .scss .css ...

3:后端语言

浏览器内核就是  html css js 的运行环境

索引数组  关联数组
var arr=[1,2,3] //index
arr['name']='hz';关联数组,具有语义化
 
 理解建模 实干 总结成为自己的东西    github 模板项目  文档
 
 node js基于v8引擎的运行环境 服务器what
 
语言的套路: 自定义模块  第三方模块(面试) 后定义
 大前端 全栈
  
 立即调用
 
 匿名函数
 
 +function (){} ()
 
 不以function开头都行。没名字匿名函数。命名空间。
 (function(){}){}
 
 
 
 路由
 
 //hash//history 路由
 后端路由:不同路径提供不同数据
 前端路由:不同路径提供不同页面 路由到页面的映射

 1:路径和页面 2.路径变,页面变 监听URL 给url添加回调函数
 函数到页面的映射(大白话)  
 
 官方说法:(spa单一应用页面,请求一次所有的都请求过来,url改变不在请求) https://blog.csdn.net/liangshoulong/article/details/76695643
 
 
 node 
 交互模式: 有响应 的
 
 脚本模式:只需发去就行
 
  数据劫持:前后端交互数据被劫持 
  
  cookie(发送请求,就有。用户标识。浏览器端储存。用多了,浪费资源) 京东:
  
  
  重点:(后端传前端)数据流(二进制的数据包)400 200 
  
  tcp(http。基于链接的。接收数据包。丢包。重发) /   udp(基于请求详细的。只发。不管你收没收到,视屏)
  
  传输数据 xml(文本格式)  json(对象格式)

  jsonp  跨域请求的原理 : jsonp作为常见的跨域方法,它的实现原理或许都有所了解,就是利用标签的src属性,避开同源策略的限制。 
  img
  
  后端: node 提供存储 增删改查     数据 访问(高并发:服务器也提供查询(重要首位)春运,一次/处理   相对于服务器,同一时间内,并发量太大)
  动态均衡:依次阻挡
  
  
  mvvm mvc(angular) mvp设计模式
   
  v(视图层)=>页面   数据层(model)=>mogodeb  控制、监听、触发器(p/vm/c)双向数据 js 和 node  
  
  前后端也可以用mv模式
  
  
  命令行模式
  
  c:
  
  cls:清屏
  
  ctrl c 放回
  
  cd: D:\进入什么文件夹
  
  cd D:\
  
  cd 文件目录
  
  
  cd.. 退后一步
  
  mkdir 创建一个文件夹(不能中文)
  
  node test.js
  
  
  fs 模块(对象) 主模块 node 直接引入
  vue node-modules(第三方模快)
  自定义模块
  
  //import reqiure (导入模块 )   node reqiure
  
  
  export (导出模块) module(本模块).export  区别:让别人使用首先要 暴露(出去)   https://blog.csdn.net/cike110120/article/details/12753253
  
  
  linux(python) 
  
  定义模块
  var PI=3.14
  function circle(r){
    return PI*r*r
  }
  var name='test'
  exports.nm-name;(导出属性)
  module.exports.s=circal;(导出)
  
  问题全部一起导出(function)
  
  
  引入模块
  var user=require('./test');//js
  
  console.log(user.s(5),user.nm)
  Object.prototype.fu=function(){}  原型:就是对象的仓库 原型链:多个原型形成的链式结构(逐级向上找)
                                                     作用域链  :多个作用域链形成的链式结构
                                                     
                                                     
    
  fs //向任意输出流    中执行输入
  
  var fs=require('fs');//引入fs 模块  //mogodb   创建、更新。添加
  var out=fs.createWriteStream("").//创建文件.没有的化就创建。有就覆盖。
  var err=fs.createWriteStream("").//创建文件
  var c=requie("console")//引入console模块
  var loger=new.c.Console(out,err)//实例化console 构造函数
  loser.log()
  
  异步读取文件或目录
  fs 异步语法。  异步事件执行顺序
  
  //fs stream
  
  
  node-modules(核心模块)
  
  1:console
  
  global.console  用于向stdout和stdder
  
  2:query string 
  
  parse()
  
  stringify()
  
  3:url模块
  
  4:path模块
  
  5:dns(缓存)模块
  
  6:util 工具模块
  
  7:buffer(少,字符串准换为二级制的缓存区域)
  
  8:fs模块
  fs.end
  node特点:所有的异步方法都有一个回调函数。其第一个参数是一个错误对象
  常用class:
  
  常用方法:
  
  
  9: 流
  
  
  fs 文件模块
  
     why 同步与异步 流 可以自动创建
     
     when 读取文件内容实现前后端交互 可写 网页面添加内容
     
     how 如何使用
         1:导入fs模块(方法 同步异步)
  
  

https://www.jianshu.com/p/a7550c0e164f 简单理解Vue中的nextTick
  
  
  
  语言的套路:
  
  c 二进制    java 字节码(还是要准换成二进制)   Python、node(像,最慢,基于解释语言的)
  node.js(全局对象是global而没有window)
  
  node.js 全局对象global
  
  console (底层c++写好了)
  
  process
  
  定时器
  
  
  
  1.模块系统:(可以复用(代码复用)。大型。功能多。结构清晰) 
  
  模块的分类:
  (1):核心模块:(底层写好的)
   (2):内置
   (3):自定义模块
   
   node.js 启动时运行的第一个模块叫做"主模块"--main module,
   
   获取主模块:
   
   process.module
  
  
  
  
  
  
  1.js解释器  2.基于es的服务器端语言  3.编写独立的服务器端应用
  
  
  特点:1:单线程逻辑处理(致命的缺点:太耗内存)  
        2:非阻塞(异步操作,接客丢给别人)
        3:异步i/o处理(丢给别人)
        4:事件驱动编程(实时监听)
        node.js支持es6 
        
        1.模板字符串 ··
        2严格模式
           (1):修改常量的值事非法的
            (2):不允许对为声明的变量赋值
             (3):匿名函数的this不在指向全局
             
 闭包新解:
 1:函数 作用域
 2:一种全局访问局部函数内的变量
 3:一种机制让变量具有全局和局部的优点
 
 作用域之间的访问 for(){}  if(){} 控制流程。不能形成独立的运行空间
 
 只有对象可以形成独立的空间/作用域/命名空间/

             
        3:块级作用域(控制流程if.for):变量只在当前代码块中起作用的作。用域,{} for .if
        
        4.for...of...用于遍历数组的元素值
        
        5.箭头函数:=>
        
        6.class
        
        7.promise

        
        CPU 进程(至少有一个线程(做具体事情的))   https://www.cnblogs.com/fuchongjundream/p/3829508.html
        多线程(同时执行多件事) (致命的缺点:锁(死机))
 
  php(无法替代,java(可以写服务器))
  
  
  
  main 和 index都可以制定文件 
  
  
  
  包(对模块的标准封装) 和npm官网(www.npmjs.com)
  lib(js)
  bin(2)
  doc(文档)
  test(测试文件
  
  
  
  
  npm root()
  
  npm 1s(查看所有的下载文件)
  
  npm update
  
  
  生成包:
  npm init(成当前目录package.json)文件 
  
  
  发布包:
  1:http://www.npmjs.com上注册用户(可省)
  2:npm adduser 命令注册账号或登录已有账号
  3:
  4:npmjs.com发布包
  
  
  
  Node.js核心模块:
console.Console()  class
   var loger=new c.Console(out,err);
   loger.log()
   loger.error()
querystring
   parse()
   stringify()
url
   parse()
   format()
   resolve()
path
   parse()
   format()
   join()
   resolve()
   relative()
dns
   lookup()
   resolve()
   reverse()
util
   format()
   inspect()
   inherits()
Buffer
   
   new Buffer(10)
   new Buffer([65,66])       
   new Buffer("ab一二","utf8")
   toString()
   
   
   
    模块的分类:
    (1)核心模块
    (2)第三方模块
    (3)自定义模块

    自定义模块:
    (1)文件模块
        没有后缀的文件模块     
        .js后缀的文件模块       
        .json后缀的文件模块    
        .node
    (2)目录模块
        package.json
        index.js
        index.json
        index.node

    包和npm
    包规范:
        包是一个目录
        package.json
        index.js
        lib
        bin
        doc
        test
    npm包管理工具
        下载:npm install 包名
        更新:npm update 包名
        删除:npm uninstall 包名
        生成package.json:npm init
        发布:npm adduser      (登录或注册)
                  npm publish       (发布)


    Node.js核心模块:
    console.Console()  class
        var loger=new c.Console(out,err);
        loger.log()
        loger.error()
    querystring
        parse()
        stringify()
    url
        parse()
        format()
        resolve()
    path
        parse()
        format()
        join()
        resolve()
        relative()
    dns
        lookup()
        resolve()
        reverse()
    util
        format()
        inspect()
        inherits()
    Buffer
        
        new Buffer(10)
        new Buffer([65,66])        
        new Buffer("ab一二","utf8")
        toString()

今天:

fs模块——文件系统模块
    fs模块提供了文件的读写、更名、删除、遍历目录等操作。
    fs模块中大多数方法都带有同步和异步两种
    所有的异步方法都有一个回调函数,此回调函数的第一个参数都是一个错误对象。
    异步方法中如果有错误的话,会静默失败,不会自己抛出error,通常情况下都需要手动处理。
    常用Class:
        fs.Stats    //文件或目录的统计信息描述对象
        fs.ReadStream    //stream.Readable接口的实现对象
        fs.WriteStream    //streamWriteable接口的实现对象
        fs.FSWatcher    //可用于监视文件修改的文件监视器对象
    
    常用的方法:
        fs.stat()    //用于返回一个文件或目录的统计信息对象(fs.Stats对象)
        fs.mkdir()    //创建目录
        fs.rmdir()    //删除目录
        fs.readdir()//读取目录下的内容
        fs.readFile()  //读取文件内容
        fs.writeFile() //向文件中写入内容
        fs.appendFile()  //向文件末尾追加内容
        fs.unlink()        //删除文件
        fs.rename    //重命名文件

    ---------------------------------------------------------
    fs.stat()   &    fs.statSync()    //用于返回一个文件或目录的统计信息对象(fs.Stats对象)
        fs.Stats对象的方法:
        stats.isFile()    //是否为文件
        stats.isDirectory()    //是否为目录
    ----------------------------------
    操作目录:
    fs.mkdir()     &  fs.mkdirSync()    //创建目录
    fs.rmdir()     &  fs.rmdirSync()    //删除目录
    fs.readdir()&  fs.readdirSync()    //读取目录下的内容
    ------------------------------------
    操作文件:
    fs.readFile()  &  fs.readFileSync   //读取文件内容
    fs.writeFile() &  fs.writeFileSync  //向文件中写入内容
    当使用writeFile()方法向文件写入内容是,若文件不存在,会自动创建指定文件;如果存在,则会替换原本的内容
    fs.appendFile() & fs.appendFileSync //向文件末尾追加内容
    当使用appendFile()方法向文件写入内容是,若文件不存在,会自动创建指定文件;如果存在,会在文件末尾追加内容
    fs.unlink()       &  fs.unlinkSync()    //删除文件
    fs.rename    &  fs.renameSync()  //重命名文件
    
    
    浅拷贝和深拷贝(吵试卷,浅拷贝,共同指向一个对象,深拷贝,开辟一个新空间)
    
    引用计数(一直循环(在监听)很耗内存)和标记清除(吃饭i)(angular1和angular2)
        
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

   
  
  


     
    
      
      
       
       

猜你喜欢

转载自blog.csdn.net/thinkingw770s/article/details/82354071