- 博客(22)
- 收藏
- 关注
原创 js判断数据类型的4+1种方法
目录1.typeof为什么typeof null 返回object2.instanceofArray.isArray()3.constructor4.toString1.typeoftypeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型。返回的结果用该类型的字符串(全小写字母)形式表示,包括以下 7 种:number、boolean、symbol、string、object、undefined、function 等。typeof的返回值typeof运算符的返回类型为字符串,值
2020-09-10 23:00:09 381
原创 基本包装类型/类型转换(装箱/拆箱)
目录基本包装类型装箱与拆箱==涉及的类型转换valueOf() toString()基本包装类型js中有3个特殊的引用类型boolean numer string。每当读取一个基本类型值的时候,后台会创建一个对应的基本包装类型对象,从而让我们能够调用一些方法来操作这些数据。let s1 = "text";let s2 = s1.sunstring(2);s1是一个基本类型,当第二行代码访问s1时,进入读取模式,从内存中读取这个字符串的值,在读取模式中访问字符串时,后台会完成下列处理1.创建S
2020-09-10 22:53:38 549
原创 http缓存/浏览器缓存
常见面试题(如果以下题目都能快速回答,那此文章也就没有必要要看啦)1.讲一下http缓存(强缓存,协商缓存)2.如何控制强/协商缓存(Expires,Cache-control,Etag/If-None-Match,If-Modified-Sine/Last-Modified)3.Cache-control有哪些值,作用是什么(max-age,no-cache,no-store,public,private)4.哪些是http/1.0哪些是http/1.1(http/1.0:Expires,If-
2020-09-04 22:56:24 295
转载 js数组方法整理
1.join()join,就是把数组转换成字符串,然后给他规定个连接字符,默认的是逗号( ,)不改变原数组。书写格式:join(" "),括号里面写字符串 (“要加引号”),let arr = [1,2,3]; console.log(arr.join()); // 1,2,3 console.log(arr.join("-")); // 1-2-3 console.log(arr); // [1, 2, 3](原数组不变)2.栈方法 push() pop(
2020-09-04 11:16:33 183
原创 头部压缩 HPACK
为什么要进行头部压缩呢?HTTP头是比较长的,如果发送的数据比较小时,也得发送一个很大的HTTP头部。当这种请求数很多的时候,会导致网络的吞吐率不高。并且,比较大的HTTP头部会迅速占满慢启动过程中的拥塞窗口,导致延迟加大。如何进行头部压缩简单说,HTTP头压缩需要在HTTP/2 Client和服务端之间:维护一份相同的静态表(Static Table),包含常见的头部名称,以及特别常见的头部名称与值的组合;维护一份相同的动态表(Dynamic Table),可以动态地添加内容;基于静态哈夫曼
2020-09-02 23:07:47 693
原创 校验ca证书的合法性
我们知道CA机构有自己的根公钥和根私钥。在证书颁发之前,机构会用根私钥将这个证书内容加密得到一个签名,这个签名只能用对应的根公钥去解密。在客户端(浏览器)收到服务端发过来的证书以后,我们首先从浏览器中拿到机构的根公钥,用这个根公钥去解析证书的签名得到一个哈希值H1,这个H1代表证书的原始内容,假设这个证书上的签名是不法分子伪造的,但是伪造的签名不可能是根私钥加密生成的(因为根私钥是CA机构私有),所以根公钥也不可能去解密任何第三方生成的签名(加密内容只能由对应的公钥私钥解析)。然后我们再用同样的哈希算法
2020-09-01 22:03:29 2609
原创 leetcode394 解压字符串
leetcode394给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。a2[c]=>accvar decodeString = functio
2020-08-25 13:33:25 210
原创 leetcode86 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val
2020-08-25 13:08:36 162
原创 点击单元格,改变同一行列单元格的样式
点击包子,包子的样式变为blue,与包子同一行同一列的样式变为red点击饮料,原先的清空,饮料的样式变为blue,与包子同一行同一列的样式变为red<style> .blue{ color:blue } .red{ color:red }</style><body> <table id="table1" border="1"> <tr> .
2020-08-24 12:20:15 215
原创 js正则 校验输入的颜色值是否合法【rgb(a),hsl(a),hsl】
function CheckIsColor(bgVal) { let type=''; if(/^rgb\(/.test(bgVal)){ //如果是rgb开头,200-249,250-255,0-199 type = "^[rR][gG][Bb][\(]([\\s]*(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)[\\s]*[\)]
2020-08-24 00:54:21 5120
原创 实现input框显示,但禁止输入
1.disabled 属性规定应该禁用 input 元素,被禁用的 input 元素,不可编辑,不可复制,不可选择,不能接收焦点,后台也不会接收到传值。设置后文字的颜色会变成灰色。disabled 属性无法与 <input type="hidden"> 一起使用。<input type="text" disabled="disabled" />2.readonly 属性规定输入字段为只读可复制,但是,用户可以使用Tab键切换到该字段,可选择,可以接收焦点,还可以选中或拷贝其文本
2020-08-23 12:07:38 2793
转载 【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
这种情况下,如何保留本地的修改同时又把远程的合并过来呢?首先取决于你是否想要保存本地修改。(是 /否)是别急我们有如下三部曲git stash git pull origin master git stash pop git stash的时候会把你本地快照,然后git pull 就不会阻止你了,pull完之后这时你的代码并没有保留你的修改。惊了! 别急,我们之前好像做了什么?STASH这时候执行git stash pop你去本地看会发现发生冲突的本地修改还在,这时候你该commit
2020-08-17 22:25:26 158
原创 vue-editor2 上传图片的坑 @imageAdded 不触发
vue中的富文本编辑器,vue2-editor, 使用 use-custom-image-handler 自定义图片上传的时候 @imageAdded 不触发,无效;@imageAdded="handleImageAdded" 这里不要使用驼峰,否则无法触发此事件解决:写成这样就可以了 @image-added="handleImageAdded"...
2020-08-14 15:33:41 571
原创 Vue Swiper 找不到swiper.css 报错This dependency was not found:swiper/dist/css/swiper.css
Vue使用swiper下出错:This dependency was not found:swiper/dist/css/swiper.cssTo install it, you can run: npm install --save swiper/dist/css/swiper.css解决:官方说明了Swiper安装6.0版本或以上的话需要引入另外一个cssimport ‘swiper/swiper-bundle.css’替代import ‘swiper/css/swiper.css’完整
2020-08-14 15:31:01 2948
原创 requestAnimationFrame实现动画,setTimeout动画抖动原因
Javascript 中可以通过定时器 setTimeout 来实现,css3 可以使用 transition 和 animation 来实现,html5 中的 canvas 也可以实现。除此之外,html5 还提供一个专门用于请求动画的API,那就是 requestAnimationFrame,顾名思义就是请求动画帧。1、屏幕刷新频率即图像在屏幕上更新的速度,也即屏幕上的图像每秒钟出现的次数,它的单位是赫兹(Hz)。 对于一般笔记本电脑,这个频率大概是60Hz, 可以在桌面上右键->屏幕分辨率-
2020-08-12 23:31:48 1070
转载 async与await
文章来源:https://es6.ruanyifeng.com/#docs/asyncasync基本用法async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。console.log('script start');async function async1(){ await async2();//会阻碍后续代码的执行 console.log('async1 en
2020-08-08 08:57:20 292
原创 css换行:white-space,word-break,word-wrap
white-space 属性white-space属性指定元素内的空白怎样处理。值描述normal 默认空白会被浏览器忽略。pre空白会被浏览器保留。其行为方式类似 HTML 中的 标签。pre-wrap保留空白符序列,但是正常地进行换行。pre-line合并空白符序列,但是保留换行符。nowrap文本不会换行,文本会在在同一行上继续,直到遇到 标签为止。inherit规定应该从父元素继承 white-space 属性的值。word
2020-07-31 19:02:30 305 1
转载 输入url到页面展示的过程
主要步骤:1、输入网址2、DNS解析3、建立tcp连接4、客户端发送HTPP请求5、服务器处理请求 6、服务器响应请求7、浏览器解析渲染页面8、浏览器发送请求获取其他在HTML中的资源。1.dns解析 查找域名的ip地址1.在浏览器中输入www.qq.com域名,会先在浏览器缓存、系统缓存(hosts文件)中查找,是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成...
2020-03-26 18:29:43 425 1
原创 js数组以字符串为下标,长度为0
例子先看个例子,这是我在笔试中遇到的题var a=new Array()a['a']=501;console.log(a.length)//输出的结果是0var b=new Array()b[0]=501;console.log(b.length)//输出的结果是1为什么呢?js不是可以使用字符串为下标吗?原理js数组只支持数字索引,而使用字符串为下标是指对象的属性。v...
2020-01-07 00:26:22 1181
原创 LeetCode 72. Edit Distance (C++实现)
题目72. Edit DistanceGiven two words word1 and word2, find the minimum number of operations required to convert word1 to word2.(将word1变成word2)You have the following 3 operations permitted on a word:...
2020-01-05 01:08:47 203
原创 Ubuntu 终端下复制文件
终端下输入sudo cp -r 要复制的文件的路径 复制的目标文件夹sudo cp -r /xxx/xxx/桌面/a /xxx/xxx/xxx把桌面上的a文件复制到/xxx/xxx/xxx文件里;a文件的路径可以右键->属性 查看...
2019-01-17 11:52:54 9264 1
原创 Ubuntu安装gensim
终端下运行pip install numpy(如果提示pip未安装,sudo apt install python-pip)pip install scipypip install gensim
2019-01-14 13:08:45 1074
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人