ES6的学习(二)
ES6的学习(二)解构赋值 ES6中允许从数组中提取值,对变量赋值,对象也可以实现解构。 数组解构 数组解构允许我们按照一一对应的关系从数组中提取值,然后将值赋值给变量 123456let ary = [1,2,3];let [a,b,c] = ary;console.log(a);console.log(b);console.log(c);// 输出1 2 3 如果解构不成功,变量的值为undeined 1234let [foo] = [];let [bar,foo] = [1];console.log(bar);// 1console.log(foo);// undefined 对象解构对象解构允许我们使用变量的名字匹配对象的属性,匹配成功将对象属性的值赋值给变量 12345678let person = { name: 'john' , age: 20};let { name, age } = person;console.log(name); //...
ES6的学习(一)
ES6的学习(一)什么是ES6?ES的全称是ECMASccript,它是由ECMA国际标准化组织,指定的一项脚本语言的标准化规范。ES6即ES2015之后的版本的泛指。 为什么使用ES6?JavaScript语言存在一些缺点,需要不断的推进更新来完善。 变量提升特性增加了程序运行时的不可测性 语法松散,实现相同的功能,不同的人可能会写出不同的代码。 ES6新增语法letES6中新增的用于声明变量的关键字 let声明的变量只在所处于的块级作用域有效 123456789if (true) { let a = 10; var b = 20; console.log(a); console.log(b);}console.log(a);// a is not definedconsole.log(b);//b = 20//...
Java包装类
什么是包装类?我们都对Java中的基本类型很熟悉,基本类型是不具备对象的特性的,比如基本类型不能调用方法,功能很少,为了让基本数据类型也具有对象的特性,java为每个基本类型提供了一个包装类,这样我们就可以像操作对象一样操作基本数据类型包装类都在java.lang包内基本类与包装类的对应关系: 包装类主要提供了两大类方法: 将本类型和其他基本类型进行转换的方法 将字符串和本类型及包装类互相转换的方法 Java中基本类型和包装类之间的转换基本类型和包装类之间经常需要转换在JDK1.5引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了那么什么是装箱和拆箱呢?装箱: 把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱 123int i = 0;//定义一个int基本类型值Integer x = new Integer(i);//手动装箱Integer y = i;//自动装箱 拆箱: 和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱 123Integer j = new Integer(8);int m =...
请求与响应的结构
HTTP请求的结构HTTP请求包含三部分: 请求行,请求头,请求体 get方法将请求放在了url中,post方法才有请求体 请求行包含请求url,请求方法,响应返回状态,端口等请求头包含浏览器执行时的辅助信息,比如语言,客户的操作系统,浏览器版本等请求体get请求通过url传递,没有请求体;post请求通过请求体传递数据;两者存储信息的格式是相同的 响应的结构HTTP响应包含三部分:响应行,响应头,响应体 常用的状态码:
Java理解String的不变性
String对象创建后不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同1234567891011121314//比如创建四个String对象,值都为"Love"String s1 = "Love";String s2 = "Love";String s3 = new String("Love");String s4 = new String("Love");//对于字符常量,只创建一个,重复的会引用常量池中的内容,所以比对s1,s2的内存,会返回trueSystem.out.println(s1 == s2);//s1和s3是不同的对象,会返回falseSystem.out.println(s1 == s3);//s3和s4是不同的对象,两者都开辟了不同的内存空间,所以返回falseSystem.out.println(s3 == s4);//修改s1,s1会指向新的内存空间s1 = s1+"...
Cookie和Session
浏览器Cookie Cookie是浏览器保存在本地的文本内容 Cookie常用于保存登录状态,用户资料等小文本 Cookie具有时效性,Cookie内容会伴随请求发送给Tomcat (以下代码写在Servlet子类的doGet(),doPost()方法内) 创建cookie 123Cookie cookie = new Cookie("user","admin");cookie.setMaxAge(60*60*24*7);//设置cookie保存7天,默认是关闭浏览器后即删除response.addCookie(cookie); 获得cookie 12345678910111213141516//request.getCookies()用户获取所有的CookieCookie[] cs = request.getCookies();String user = null;//存放用户名if (cs==null){ response.getWriter().println("User not...
Javascript异步与多线程
为什么要使用JavaScript多线程编程?浏览器端JavaScript是以单线程的方式执行的,也就是JavaScript和UI渲染占用同一主线程。一般来说: 非阻塞性的任务采取同步的方法,直接在主线程的执行栈完成。 阻塞性的任务采取异步操作,异步的工作一般会交给其他线程完成。 如果JavaScript进行高负载处理,UI渲染就很可能被阻断,浏览器就会出现卡顿,降低了用户的体验。而且多核CPU普及,单线程无法充分发挥CPU的计算能力。 为什么JavaScript是单线程的?JavaScript的单线程与其用途有关。JavaScript作为浏览器脚本语言,其主要用途是与用户交互,以及操作DOM。这决定了他只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程往DOM节点上添加内容,一个线程删除了这个节点,这时浏览器应该以那个线程为准?当一个函数执行的时候,JS引擎会锁住DOM树,其他事件的响应代码只能在队列中等待,并且此时页面卡死(即无法响应)。 ...
三次握手
三次握手三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。 刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。 进行三次握手: 第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN©。此时客户端处于 SYN_SEND 状态。 ISN(Initial Sequence Number)是固定的吗? 当一端为建立连接而发送它的SYN时,它为连接选择一个初始序号。ISN随时间而变化,因此每个连接都将具有不同的ISN。ISN可以看作是一个32比特的计数器,每4ms加1 。这样选择序号的目的在于防止在网络中被延迟的分组在以后又被传送,而导致某个连接的一方对它做错误的解释。三次握手的其中一个重要功能是客户端和服务端交换 ISN(Initial...
初见Vue
vue2.X 核心技术-最流行的前端框架学习清单: vue2.X框架常用知识点(模板语法、条件渲染、列表渲染等) vue2.X核心技术(vue-router、vuex) 集成vue2.x vue优点: 方便集成,灵活小巧 语法清晰,便捷强大 Vue常用知识点 vue Hello World!: 1<script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>//引用bootCDN的vue库 建立一个Vue对象: 123456new Vue({ el:'.bg', data:{ msg:'hello vue!' ...
什么是前端
前端五要义:系统全面的知识体系:CSS HTML JavaScript企业主流开发技术:react、Vue.js、ES6、webpack、微信小程序相对丰富完整的项目经验:电商、社交、小程序师从大厂技术大牛快速高效的学习方法:项目——文档——视频,结合学习。 什么是前端?完成你所看到的一切! HTML制作网页的结构和内容 CSS负责网页的样式 JavaScript完成和用户之间的动态交互 所有的框架都是基于这三者。 前端开发兵器: webstrom:前端开发神器 sublime:强大的编辑功能 vscode:微软出品 HbuildX:国内