请稍等ManixChen正在解析过程中………

技术中心

以标签聚合内容,让检索更快、知识结构更清晰。

为什么要用补码表示负数

抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分应当为 500~999,我们暂时把这些表...

IP详细介绍-类型分类

#分类IP通过地址开头判断类型,将以 0,10,110 开头的地址分为ABC三类将ip转换成十进制后A类地址第一个字节在 0 - 127 之间,B类地址第一个字节在 128 - 191 之间C类地址第一个字节在 192 - 223 之间然后剩下的位被分为网络号与主机号,主机有两个特殊的值:主机号全部为0的ip代表一个网段主机号全部为1的ip代表广播地址...

为什么要用补码表示负数

抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分应当为 500~999,我们暂时把这些表...

XML使用语法以及注意事项

XML 文档可以包含非 ASCII 字符,为了避免错误,需要规定 XML 编码,或者将 XML 文档存为 Unicode,两者需要保持一致。必须包含根元素,该元素是所有其他元素的父元素。所有元素都必须有关闭标签对大小写敏感属性值须加引号,如果属性本身包含引号,就用单引号包围属性< 和 & 是非法的,用实体引用代替文档中的空格不会被删节,而...

IP详细介绍-类型分类

#分类IP通过地址开头判断类型,将以 0,10,110 开头的地址分为ABC三类将ip转换成十进制后A类地址第一个字节在 0 - 127 之间,B类地址第一个字节在 128 - 191 之间C类地址第一个字节在 192 - 223 之间然后剩下的位被分为网络号与主机号,主机有两个特殊的值:主机号全部为0的ip代表一个网段主机号全部为1的ip代表广播地址...

Custom Fileupload

本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。#HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有一个功能,就是完整地打印整个 HTTP...

RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。RMI能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法, 其威力体现在它强大的开发分布式网络应用的能力上,它可以被看作是RPC的Java版本。

Servlet乱码分析

我们知道,web浏览器会将form中的内容打包成HTTP请求体,然后发送到服务端,服务端对请求体解析后可以得到传递的数据。这当中包含两个过程:encodedecode

spring security 探秘

概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 概述 Filt...

Bean Validation

BeanValidation 可以帮助开发者方便地对数据进行校验,但它只是一个标准,只有一套接口,要想使用它的功能必须选择一种实现,hibernate-validator是个不错的选择

SQL 拼接

在java中进行SQL拼接是一件无比痛苦的工作,这是由于需要通过判断参数动态生成SQL

WebService

WSDLdefinitions 为根节点,属性为 name:WS 名称,默认为“实现类 + Service” targetNamespace:WS 目标命名空间,默认为“WS 实现类对应包名倒排后构成的地址”definitions的5个子节点 types:描述了 WS 中所涉及的数据类型 portType:定义了 WS 接口名称portType...

Java8 新特性

#1 语言新特性##1.1 Lambda自动推测形参类型eArrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );指定形参类型eArrays.asList( "a", "b", "d" ).forEach( ( String e ) -> System.o...

Java Concurrent

线程拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。线程存在于进程中,它们与同一进程内的其他线程共享内存、文件句柄以及进程状态。

Java虚拟机

#一、走近JAVA##第一章、走近JAVAjava技术体系###1.1 jdk1.7的主要特性G1收集器JSR-292对非JAVA语言的调用支持ARM指令集?Sparc指令集?新语法:原生二进制(0b开头),switch支持字符串,”<>”操作符,异常处理改进,简化变长参数方法调用,面向资源的try-catch-finally多核并行:ja...

Effective Java

#一 创建和销毁对象##1.考虑用静态工厂方法代替构造器静态工厂方法的优势:1.有名称,可以见名知义了解获取对象的特点2.不必每次调用时都创建一个对象3.可以返回原类型的任何子类型对象4.创建参数化类型实例时,可以使代码更简洁(右边无需再写一遍)5.不可变对象可以进行缓存,以提升性能##2.遇到多个构造器参数时要考虑用构建器构建器优势:1.重叠构造器代...

Custom Fileupload

本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。#HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有一个功能,就是完整地打印整个 HTTP...

Custom Fileupload

本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。#HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有一个功能,就是完整地打印整个 HTTP...

Flex

#产品 Adobe® Flex™ SDK Adobe® Flex™ Builder™ Adobe® Flex™ Data Services Adobe® Flex™ Charting #Flex基础##应用程序模型用容器(如Box)控件(如Button)来描述用户的操作界面##MVC模型 ...

Flex

#产品 Adobe® Flex™ SDK Adobe® Flex™ Builder™ Adobe® Flex™ Data Services Adobe® Flex™ Charting #Flex基础##应用程序模型用容器(如Box)控件(如Button)来描述用户的操作界面##MVC模型 ...

JS 闭包

在JS中,当内部的方法被其他对象引用,如果内部的方法使用了外部方法的变量,将造成外部方法无法释放,变量将被保持,此时将形成闭包。

Flex

#产品 Adobe® Flex™ SDK Adobe® Flex™ Builder™ Adobe® Flex™ Data Services Adobe® Flex™ Charting #Flex基础##应用程序模型用容器(如Box)控件(如Button)来描述用户的操作界面##MVC模型 ...

SSH

##登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host##过程 远程主机接收到用户的登陆请求,把自己的公钥发给用户 用户使用这个公钥,将密码加密后发回来 远程主机用自己的私钥,解密登陆密码,如果密码正确,就同意用户登...

SSH

##登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host##过程 远程主机接收到用户的登陆请求,把自己的公钥发给用户 用户使用这个公钥,将密码加密后发回来 远程主机用自己的私钥,解密登陆密码,如果密码正确,就同意用户登...

SSH

##登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host##过程 远程主机接收到用户的登陆请求,把自己的公钥发给用户 用户使用这个公钥,将密码加密后发回来 远程主机用自己的私钥,解密登陆密码,如果密码正确,就同意用户登...

Effective Java

#一 创建和销毁对象##1.考虑用静态工厂方法代替构造器静态工厂方法的优势:1.有名称,可以见名知义了解获取对象的特点2.不必每次调用时都创建一个对象3.可以返回原类型的任何子类型对象4.创建参数化类型实例时,可以使代码更简洁(右边无需再写一遍)5.不可变对象可以进行缓存,以提升性能##2.遇到多个构造器参数时要考虑用构建器构建器优势:1.重叠构造器代...

Java虚拟机

#一、走近JAVA##第一章、走近JAVAjava技术体系###1.1 jdk1.7的主要特性G1收集器JSR-292对非JAVA语言的调用支持ARM指令集?Sparc指令集?新语法:原生二进制(0b开头),switch支持字符串,”<>”操作符,异常处理改进,简化变长参数方法调用,面向资源的try-catch-finally多核并行:ja...

八种排序

##1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。/** * 形象描述:踢馆 * 直接插入排序(从小到大) * @param src 待排序的数组 */public void straight_i...

八种排序

##1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。/** * 形象描述:踢馆 * 直接插入排序(从小到大) * @param src 待排序的数组 */public void straight_i...

八种排序

##1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。/** * 形象描述:踢馆 * 直接插入排序(从小到大) * @param src 待排序的数组 */public void straight_i...

Java Concurrent

线程拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。线程存在于进程中,它们与同一进程内的其他线程共享内存、文件句柄以及进程状态。

Java8 新特性

#1 语言新特性##1.1 Lambda自动推测形参类型eArrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );指定形参类型eArrays.asList( "a", "b", "d" ).forEach( ( String e ) -> System.o...

WebService

WSDLdefinitions 为根节点,属性为 name:WS 名称,默认为“实现类 + Service” targetNamespace:WS 目标命名空间,默认为“WS 实现类对应包名倒排后构成的地址”definitions的5个子节点 types:描述了 WS 中所涉及的数据类型 portType:定义了 WS 接口名称portType...

JS 闭包

在JS中,当内部的方法被其他对象引用,如果内部的方法使用了外部方法的变量,将造成外部方法无法释放,变量将被保持,此时将形成闭包。

javascript 脚手架制作

** 通用脚手架 **

本脚手架主要方便个人开发,常用的项目脚手架个模板自己封装便于使用,在企业中节约重复造轮子的时间, 包含VUE脚手架常用的插件功能,其实就是提升复用率,目前完成了VUE3的PC端模版

npm i manix-sun-cli
manix-sun-cli create <project name>
根据需求选择即可
  1. vue3 PC端后台模板
  2. vue2 PC端后台模板
  3. vue3 移动端模板
  4. vue2 移动端模板
  5. 微信小程序模板

javascript webpack配置

1.前端模块化打包初识 commonjs语法形式

> user.js
const login = function(formData){
  console.log("logoing")
  return {}
}
const register = function(formData){
  console.log("register")
}
module.exports = {
  login:login,
  register:register
}
>login_index.js  引入
const user =require('./user.js')
const resp = user.login({})

javascript开启网页录制功能ES6语法 async

var body = document.body;    
body.addEventListener("click",async function(){        
    var stream = await navigator.mediaDevices.getDisplayMedia({video: true});         
    var mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ?"video/webm; codecs=vp9" :"video/webm";        
    var mediaRecorder = new MediaRecorder(stream, {mimeType: mime});         
    //录制        
     var chunks = [];        
      mediaRecorder.addEventListener('dataavailable', function(e) {chunks.push(e.data)})         
       //停止        
       mediaRecorder.addEventListener('stop', function(){            
           var blob = new Blob(chunks, {type: chunks[0].type});            
           var url = URL.createObjectURL(blob);            
           var a = document.createElement('a');            
           a.href = url;            
           a.download = 'video.webm';            
           a.click();       
       })       
    //手动启动       
    mediaRecorder.start()   
});

javascript ES6重点语法记录

** 常用的API *** 一、下面是 Proxy 支持的拦截操作一览,一共 13 种。 ``` get(target, propKey, receiver):拦截对象属性的读取,比如proxy.foo和proxy[‘foo’]。 set(target, propKey, value, receiver):拦截对象属性的设置,比如proxy.foo = v或proxy[‘foo’] = v,返回一个布尔值。 has(target, propKey):拦截propKey in proxy的操作,返回一个布尔值。 deleteProperty(target, propKey):拦截delete proxy[propKey]的操作,返回一个布尔值。 ownKeys(target):拦截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for…in循环,返回一个数组。该方法返回目标对象所有自身的属性的属性名,而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。 getOwnPropertyDescriptor(target, propKey):拦截Object.getOwnPropertyDescriptor(proxy, propKey),返回属性的描述对象。 defineProperty(target, propKey, propDesc):拦截Object.defineProperty(proxy, propKey, propDesc)、Object.defineProperties(proxy, propDescs),返回一个布尔值。 preventExtensions(target):拦截Object.preventExtensions(proxy),返回一个布尔值。 getPrototypeOf(target):拦截Object.getPrototypeOf(proxy),返回一个对象。 isExtensible(target):拦截Object.isExtensible(proxy),返回一个布尔值。 setPrototypeOf(target, proto):拦截Object.setPrototypeOf(proxy, proto),返回一个布尔值。如果目标对象是函数,那么还有两种额外操作可以拦截。 apply(target, object, args):拦截 Proxy 实例作为函数调用的操作,比如proxy(…args)、proxy.call(object, …args)、proxy.apply(…)。 construct(target, args):拦截 Proxy 实例作为构造函数调用的操作,比如new proxy(…args)。

javascript vue3 props 验证属性

HTML、CSS相关 HTML5 HTML5新特性 增强了表单,input新增了一些type: color—-定义调色板 tel—–定义包含电话号码的输入域 email—定义包含email地址的输入域 search–定义搜索域 number–定义包含数值的输入域 date—-定义选取日、月、年的输入域 Video视频标签; Audio音频标签; 语义化标签;datatime-local 定义文档类型的简写 地理定位;拖放api;Canvas图形绘制;富文本Web Storage:localStorage:没有时间限制的数据存储;sessionStorage:在浏览器关闭的时候就会清除

javascript webpack经常用的插件包

一、 ** webpack安装配置 ,纯手动,官网提供了脚本这里不做介绍**

  1. npm install nodemon -g nodemon可以替代node 来观察代码更改并自动 启动关闭程序 全局安装即可, 后续使用命令nodemon server.is 替代 npde server.js

javascript lodashjs常见对象的所有操作

* 简单介绍 *** Lodash 能够大幅度提高前端 JavaScript 编程的效率和可读性,使得代码编写更加快捷、简洁、易懂。如果你还没有使用过 Lodash,建议尝试使用它来优化你的项目,提高开发效率。向大家介绍或简单的展示一下它的能力,或许能够吸引到你。Lodash 是一个流行的 JavaScript 实用工具库,提供了许多常用的函数和工具,能够方便地处理集合、字符串、数值、函数等多种数据类型,减少编写重复代码的时间和精力。Lodash 的 API 设计与 ES6 的新特性相似,同时兼容了更早的浏览器版本。Lodash 支持模块化加载,可以通过 npm 或在浏览器中直接引入来使用。 Lodash 有多达 300 多个函数,每个函数都有详细的文档和示例,能够快速地满足各种编程需求。同时,Lodash 的功能也非常完善,比如数组、对象等的操作,以及日期、数学计算、函数式编程等多方面支持。Lodash 还提供了链式调用的方式,简化操作的流程。 *** npm install lodash **

JS 闭包

在JS中,当内部的方法被其他对象引用,如果内部的方法使用了外部方法的变量,将造成外部方法无法释放,变量将被保持,此时将形成闭包。

SQL 拼接

在java中进行SQL拼接是一件无比痛苦的工作,这是由于需要通过判断参数动态生成SQL

SQL 拼接

在java中进行SQL拼接是一件无比痛苦的工作,这是由于需要通过判断参数动态生成SQL

Bean Validation

BeanValidation 可以帮助开发者方便地对数据进行校验,但它只是一个标准,只有一套接口,要想使用它的功能必须选择一种实现,hibernate-validator是个不错的选择

Bean Validation

BeanValidation 可以帮助开发者方便地对数据进行校验,但它只是一个标准,只有一套接口,要想使用它的功能必须选择一种实现,hibernate-validator是个不错的选择

spring security 探秘

概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 概述 Filt...

spring security 探秘

概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 概述 Filt...

Servlet乱码分析

我们知道,web浏览器会将form中的内容打包成HTTP请求体,然后发送到服务端,服务端对请求体解析后可以得到传递的数据。这当中包含两个过程:encodedecode

Servlet乱码分析

我们知道,web浏览器会将form中的内容打包成HTTP请求体,然后发送到服务端,服务端对请求体解析后可以得到传递的数据。这当中包含两个过程:encodedecode

RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。RMI能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法, 其威力体现在它强大的开发分布式网络应用的能力上,它可以被看作是RPC的Java版本。

基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

vue常用的知识点

  1. ** 如何检测对象变化? ** 由于 JavaScript特性的限制,Vue.js不能检测到对象属性的添加或删除。因为Vue.js在初始化时将属性转化为 getter/setter,所以属性必须在data对象中定义,才能在初始化时让Vue.js转换它并让它响应,例如以下代码

windows下将服务文件一键打包成应用程序自动执行

在这个容器化包管理时代,前端打包工具等满天飞的时代想必你也会比较感兴趣这个话题(Webpack,Rollup,RequireJS,browserify)

很多小伙伴估计都没有听说过这个名词,打包工具其实就是将做好的程序用用户可以看到的方式制作成一个对应操作系统下的可执行应用,Windows下面必然就是打包成 .exe为后缀的,说起来高大上,其实就是一个难者亦易的事情,具体你看我怎么操作的就知道的

windows下将服务文件一键打包成应用程序自动执行

在这个容器化包管理时代,前端打包工具等满天飞的时代想必你也会比较感兴趣这个话题(Webpack,Rollup,RequireJS,browserify)

很多小伙伴估计都没有听说过这个名词,打包工具其实就是将做好的程序用用户可以看到的方式制作成一个对应操作系统下的可执行应用,Windows下面必然就是打包成 .exe为后缀的,说起来高大上,其实就是一个难者亦易的事情,具体你看我怎么操作的就知道的

windows下将服务文件一键打包成应用程序自动执行

在这个容器化包管理时代,前端打包工具等满天飞的时代想必你也会比较感兴趣这个话题(Webpack,Rollup,RequireJS,browserify)

很多小伙伴估计都没有听说过这个名词,打包工具其实就是将做好的程序用用户可以看到的方式制作成一个对应操作系统下的可执行应用,Windows下面必然就是打包成 .exe为后缀的,说起来高大上,其实就是一个难者亦易的事情,具体你看我怎么操作的就知道的

javascript 脚手架制作

** 通用脚手架 **

本脚手架主要方便个人开发,常用的项目脚手架个模板自己封装便于使用,在企业中节约重复造轮子的时间, 包含VUE脚手架常用的插件功能,其实就是提升复用率,目前完成了VUE3的PC端模版

npm i manix-sun-cli
manix-sun-cli create <project name>
根据需求选择即可
  1. vue3 PC端后台模板
  2. vue2 PC端后台模板
  3. vue3 移动端模板
  4. vue2 移动端模板
  5. 微信小程序模板

javascript webpack配置

1.前端模块化打包初识 commonjs语法形式

> user.js
const login = function(formData){
  console.log("logoing")
  return {}
}
const register = function(formData){
  console.log("register")
}
module.exports = {
  login:login,
  register:register
}
>login_index.js  引入
const user =require('./user.js')
const resp = user.login({})

javascript开启网页录制功能ES6语法 async

var body = document.body;    
body.addEventListener("click",async function(){        
    var stream = await navigator.mediaDevices.getDisplayMedia({video: true});         
    var mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ?"video/webm; codecs=vp9" :"video/webm";        
    var mediaRecorder = new MediaRecorder(stream, {mimeType: mime});         
    //录制        
     var chunks = [];        
      mediaRecorder.addEventListener('dataavailable', function(e) {chunks.push(e.data)})         
       //停止        
       mediaRecorder.addEventListener('stop', function(){            
           var blob = new Blob(chunks, {type: chunks[0].type});            
           var url = URL.createObjectURL(blob);            
           var a = document.createElement('a');            
           a.href = url;            
           a.download = 'video.webm';            
           a.click();       
       })       
    //手动启动       
    mediaRecorder.start()   
});

javascript ES6重点语法记录

** 常用的API *** 一、下面是 Proxy 支持的拦截操作一览,一共 13 种。 ``` get(target, propKey, receiver):拦截对象属性的读取,比如proxy.foo和proxy[‘foo’]。 set(target, propKey, value, receiver):拦截对象属性的设置,比如proxy.foo = v或proxy[‘foo’] = v,返回一个布尔值。 has(target, propKey):拦截propKey in proxy的操作,返回一个布尔值。 deleteProperty(target, propKey):拦截delete proxy[propKey]的操作,返回一个布尔值。 ownKeys(target):拦截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for…in循环,返回一个数组。该方法返回目标对象所有自身的属性的属性名,而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。 getOwnPropertyDescriptor(target, propKey):拦截Object.getOwnPropertyDescriptor(proxy, propKey),返回属性的描述对象。 defineProperty(target, propKey, propDesc):拦截Object.defineProperty(proxy, propKey, propDesc)、Object.defineProperties(proxy, propDescs),返回一个布尔值。 preventExtensions(target):拦截Object.preventExtensions(proxy),返回一个布尔值。 getPrototypeOf(target):拦截Object.getPrototypeOf(proxy),返回一个对象。 isExtensible(target):拦截Object.isExtensible(proxy),返回一个布尔值。 setPrototypeOf(target, proto):拦截Object.setPrototypeOf(proxy, proto),返回一个布尔值。如果目标对象是函数,那么还有两种额外操作可以拦截。 apply(target, object, args):拦截 Proxy 实例作为函数调用的操作,比如proxy(…args)、proxy.call(object, …args)、proxy.apply(…)。 construct(target, args):拦截 Proxy 实例作为构造函数调用的操作,比如new proxy(…args)。

javascript vue3 props 验证属性

HTML、CSS相关 HTML5 HTML5新特性 增强了表单,input新增了一些type: color—-定义调色板 tel—–定义包含电话号码的输入域 email—定义包含email地址的输入域 search–定义搜索域 number–定义包含数值的输入域 date—-定义选取日、月、年的输入域 Video视频标签; Audio音频标签; 语义化标签;datatime-local 定义文档类型的简写 地理定位;拖放api;Canvas图形绘制;富文本Web Storage:localStorage:没有时间限制的数据存储;sessionStorage:在浏览器关闭的时候就会清除

javascript webpack经常用的插件包

一、 ** webpack安装配置 ,纯手动,官网提供了脚本这里不做介绍**

  1. npm install nodemon -g nodemon可以替代node 来观察代码更改并自动 启动关闭程序 全局安装即可, 后续使用命令nodemon server.is 替代 npde server.js

javascript lodashjs常见对象的所有操作

* 简单介绍 *** Lodash 能够大幅度提高前端 JavaScript 编程的效率和可读性,使得代码编写更加快捷、简洁、易懂。如果你还没有使用过 Lodash,建议尝试使用它来优化你的项目,提高开发效率。向大家介绍或简单的展示一下它的能力,或许能够吸引到你。Lodash 是一个流行的 JavaScript 实用工具库,提供了许多常用的函数和工具,能够方便地处理集合、字符串、数值、函数等多种数据类型,减少编写重复代码的时间和精力。Lodash 的 API 设计与 ES6 的新特性相似,同时兼容了更早的浏览器版本。Lodash 支持模块化加载,可以通过 npm 或在浏览器中直接引入来使用。 Lodash 有多达 300 多个函数,每个函数都有详细的文档和示例,能够快速地满足各种编程需求。同时,Lodash 的功能也非常完善,比如数组、对象等的操作,以及日期、数学计算、函数式编程等多方面支持。Lodash 还提供了链式调用的方式,简化操作的流程。 *** npm install lodash **

javascript lodashjs常见对象的所有操作

* 简单介绍 *** Lodash 能够大幅度提高前端 JavaScript 编程的效率和可读性,使得代码编写更加快捷、简洁、易懂。如果你还没有使用过 Lodash,建议尝试使用它来优化你的项目,提高开发效率。向大家介绍或简单的展示一下它的能力,或许能够吸引到你。Lodash 是一个流行的 JavaScript 实用工具库,提供了许多常用的函数和工具,能够方便地处理集合、字符串、数值、函数等多种数据类型,减少编写重复代码的时间和精力。Lodash 的 API 设计与 ES6 的新特性相似,同时兼容了更早的浏览器版本。Lodash 支持模块化加载,可以通过 npm 或在浏览器中直接引入来使用。 Lodash 有多达 300 多个函数,每个函数都有详细的文档和示例,能够快速地满足各种编程需求。同时,Lodash 的功能也非常完善,比如数组、对象等的操作,以及日期、数学计算、函数式编程等多方面支持。Lodash 还提供了链式调用的方式,简化操作的流程。 *** npm install lodash **

javascript css3常用属性

CSS允许文本内容换行显示的方法有: 1.使用white-space属性:white-space属性可以控制文本内容的换行显示, 它有三个值,分别是normal、nowrap和pre,normal表示换行显示,nowrap表示不换行显示,pre表示按照原始格式显示,也就是按照原始文本中的换行符进行换行显示。 2.使用word-wrap属性:word-wrap属性可以控制文本内容的换行显示, 它有两个值,分别是normal和break-word,normal表示按照原始文本中的换行符进行换行显示,break-word表示在文本内容超出容器宽度时,会自动换行显示。 3.使用word-break属性:word-break属性可以控制文本内容的换行显示,它有三个值, 分别是normal、break-all和keep-all,normal表示按照原始文本中的换行符进行换行显示,break-all表示在文本内容超出容器宽度时,会自动换行显示,keep-all表示在文本内容超出容器宽度时,会自动换行显示,但是会保留单词的完整性。

javascript css3常用属性

CSS允许文本内容换行显示的方法有: 1.使用white-space属性:white-space属性可以控制文本内容的换行显示, 它有三个值,分别是normal、nowrap和pre,normal表示换行显示,nowrap表示不换行显示,pre表示按照原始格式显示,也就是按照原始文本中的换行符进行换行显示。 2.使用word-wrap属性:word-wrap属性可以控制文本内容的换行显示, 它有两个值,分别是normal和break-word,normal表示按照原始文本中的换行符进行换行显示,break-word表示在文本内容超出容器宽度时,会自动换行显示。 3.使用word-break属性:word-break属性可以控制文本内容的换行显示,它有三个值, 分别是normal、break-all和keep-all,normal表示按照原始文本中的换行符进行换行显示,break-all表示在文本内容超出容器宽度时,会自动换行显示,keep-all表示在文本内容超出容器宽度时,会自动换行显示,但是会保留单词的完整性。

javascript vue3 props 验证属性

HTML、CSS相关 HTML5 HTML5新特性 增强了表单,input新增了一些type: color—-定义调色板 tel—–定义包含电话号码的输入域 email—定义包含email地址的输入域 search–定义搜索域 number–定义包含数值的输入域 date—-定义选取日、月、年的输入域 Video视频标签; Audio音频标签; 语义化标签;datatime-local 定义文档类型的简写 地理定位;拖放api;Canvas图形绘制;富文本Web Storage:localStorage:没有时间限制的数据存储;sessionStorage:在浏览器关闭的时候就会清除

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

vue常用的知识点

  1. ** 如何检测对象变化? ** 由于 JavaScript特性的限制,Vue.js不能检测到对象属性的添加或删除。因为Vue.js在初始化时将属性转化为 getter/setter,所以属性必须在data对象中定义,才能在初始化时让Vue.js转换它并让它响应,例如以下代码

javascript 脚手架制作

** 通用脚手架 **

本脚手架主要方便个人开发,常用的项目脚手架个模板自己封装便于使用,在企业中节约重复造轮子的时间, 包含VUE脚手架常用的插件功能,其实就是提升复用率,目前完成了VUE3的PC端模版

npm i manix-sun-cli
manix-sun-cli create <project name>
根据需求选择即可
  1. vue3 PC端后台模板
  2. vue2 PC端后台模板
  3. vue3 移动端模板
  4. vue2 移动端模板
  5. 微信小程序模板

javascript webpack配置

1.前端模块化打包初识 commonjs语法形式

> user.js
const login = function(formData){
  console.log("logoing")
  return {}
}
const register = function(formData){
  console.log("register")
}
module.exports = {
  login:login,
  register:register
}
>login_index.js  引入
const user =require('./user.js')
const resp = user.login({})

javascript webpack配置

1.前端模块化打包初识 commonjs语法形式

> user.js
const login = function(formData){
  console.log("logoing")
  return {}
}
const register = function(formData){
  console.log("register")
}
module.exports = {
  login:login,
  register:register
}
>login_index.js  引入
const user =require('./user.js')
const resp = user.login({})

免费激活Idea的热部署插件JRebel,解决连接失败报错,提供下载地址

免费激活Idea之热部署插件JRebel,解决连接失败报错

JRebel是一个实用的插件,它可以让你在不重启服务器的情况下,修改Java程序并即时生效。相信大家都有这样的经历:每次修改代码后都需要重新编译、打包、部署,然后重启服务器,这个过程非常耗时且繁琐。但是,如果你使用了JRebel,你就可以摆脱这些烦恼,轻松享受修改代码后立即生效的快感!

javascript 脚手架制作

** 通用脚手架 **

本脚手架主要方便个人开发,常用的项目脚手架个模板自己封装便于使用,在企业中节约重复造轮子的时间, 包含VUE脚手架常用的插件功能,其实就是提升复用率,目前完成了VUE3的PC端模版

npm i manix-sun-cli
manix-sun-cli create <project name>
根据需求选择即可
  1. vue3 PC端后台模板
  2. vue2 PC端后台模板
  3. vue3 移动端模板
  4. vue2 移动端模板
  5. 微信小程序模板