0%

知识点:Object.prototype.toString.call(obj) === ‘[object typeStr]’; typeStr首字母必须大写
方法如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @desc 数据类型检测
* @param obj 待检测的数据
* @return {String} 类型字符串
*/
function jsType(obj) {
var toString=Object.prototype.toString;
var toType = {};
var typeArr=['Undefined','Null','Boolean','Number','String','Object','Array','Function','Date','RegExp','Error','Arguments'];
typeArr.map(function(item) {
toType["[object " + item + "]"] = item.toLowerCase();
});
return typeof obj !== "object" ? typeof obj : toType[toString.call(obj)];
}

Mac解压rar文件

  • 由于在Mac上面是不能够直接解压rar格式的文件的,比较快捷的方法就是使用命令行解压了(平时习惯命令行了😁)。具体方法如下:
  1. 使用Homebrew安装unrar
    1
    brew install unrar
  2. 在需要解压的目录下面,于终端键入如下命令即可:
    1
    unrar x fileName.rar

Mac 安装compass提示没有权限

  • 我是想安装sass、compass的,sass 可以直接使用gem install sass安装成功(Mac自带ruby);但是安装compass就不行了,在我输入了sudo gem install compass 之后还是提示没有权限写入/usr/bin目录,最后google了下才知道,原来苹果爸爸为了使OS X系统保证完整性,关闭部分目录的操作权限了(usr/local 目录除外);
  • 解决方法:首先切换当前用户环境,再正常安装就行了(系统版本:10.13.4)
  1. sudo su
  2. sudo gem install -n /usr/local/bin compass

1⃣️ nginx -t 查看配置信息

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

2⃣️ sudo vim /etc/nginx/nginx.conf 编辑配置文件;在http对象里面加入

1
2
3
4
5
6
7
8
http {
gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascriptext/css application/xml application/javascripapplication/json;
...
}

3⃣️ 相关字段儿解释

1、开启gzip
gzip on;
2、启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
3、gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 2;
4、进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。注意,gzip_types里面的内容一定要包含content-types里面的类型,不然无效
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
5、是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
6、禁用IE 6 gzip
gzip_disable “MSIE [1-6].“;
7、开启缓存
location ~* ^.+.(ico|gif|jpg|jpeg|png)$ {
access_log off;
expires 30d;
}

location ~* ^.+.(css|js|txt|xml|swf|wav)$ {
access_log off;
expires 24h;
}

location ~* ^.+.(html|htm)$ {
expires 1h;
}

location ~* ^.+.(eot|ttf|otf|woff|svg)$ {
access_log off;
expires max;
}

使用场景:

  • 在Vue(ssr)项目中,当用户进行交互的时,如果需要加上Loading动画(项目中Loading一般封装成了组件)时可以这样使用;

使用方法:

  • 单页应用:在需要加载Loading组件的页面(这里的页面指components文件夹下面的组件)中,导入a.js直接调用即可;
  • 多页应用:在pages目录下的需要加载Loading组件的页面中,导入a.js直接调用即可;^^^^^^^我是把js写在mixins里面的,当然也可以写在别的地方,比如utils中^^^^^^^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// a.js
export default {
methods: {
showLoading() {
this.$root.$children[0].loading = true
},
hideLoading() {
this.$root.$children[0].loading = false
}
}
}
// xx.vue里面调用
import AMixin from '../../mixins/a'
export default {
mixins: [AMixin],
methods: {
testFunc() {
this.showLoading() // open
this.hideLoading() // close
}
}
}

总结:

1、这里主要考察的是对$root的灵活运用;
2、如果是全局页面跳转转场效果的话,Nuxt框架已经帮我们做了,我们直接自定义动画样式即可;此文提到的使用场景,我们就是复用这个组件

  • opacity:设置父元素隐藏,设置子元素显示将失效
  • visiblity:设置父元素隐藏,设置子元素显示将成功
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    .item1 {
    width: 400px;
    height: 400px;
    padding: 100px;
    box-sizing: border-box;
    background-color: green;
    text-align: center;
    /*opacity: 0;*/
    visibility: hidden
    }
    .item2 {
    width: 200px;
    height: 200px;
    background-color: fuchsia;
    /*opacity: 1;*/
    visibility: visible
    }
    <div class="item1">
    <div class="item2"></div>
    </div>

这些是平时我工作学习中使用频率较高的git指令,归纳如下:


查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

查看分支合并图:git log --graph

把当前工作现场“储藏”起来:git stash

查看stash隐藏工作现场(未提交的)存到哪去了:git stash list

恢复stash隐藏的工作现场(未提交的):git stash apply

删除stash内容git stash drop


分支bug

git stash apply + git stash drop = git stash pop

撤销修改

保存到暂存区的情况,其实可以一条命令搞定:git reset --hard head

(未完待续)

  • 下载链接: https://pan.baidu.com/s/1qG_xZOTA_S0Zcpoj0pWFSQ 密码: d39g

  • 安装解压获取下面的文件
    image

  • 点击WebStorm应用,显示包内容->contents,把JetbrainCrack.jar拖到bin目录下。

  • 找到webstorm.vmoptions文件,用文本编辑的方式打开,把-javaagent:JetbrainsCrack.jar复制到第一行。如下:

    1
    2
    3
    4
    5
    -javaagent:JetbrainsCrack.jar
    -Xms128m
    -Xmx750m
    -XX:ReservedCodeCacheSize=240m
    -XX:+UseCompressedOops
  • 打开WebStorm,Activaton code里输入如下:

    1
    2
    3
    4
    5
    00001h6wzKLpfo3gmjJ8xoTPw5mQvY

    YA8vwka9tH!vibaUKS4FIDIkUfy!!f

    3C”rQCIRbShpSlDcFT1xmJi5h0yQS6
  • over

使用场景:在前台,当需要通过当前url这个的参数处理一些逻辑的时候,可以使用此方法。
函数如下:

1
2
3
4
5
6
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}

使用方法:name-参数名称为字符串形式。若当前链接后面的参数为?name=itonline&sex=gg&age=18,则获取name参数值的调用方式为:getQueryString("name");

–转自http://blog.163.com/yw_0721/blog/static/7164579720102932157759/

在JS中可以使用:
img

innerHTML:

也就是从对象的起始位置到终止位置的全部内容,包括Html标签。

innerText:

从起始位置到终止位置的内容, 但它去除Html标签。

outerHTML:

除了包含innerHTML的全部内容外, 还包含对象标签本身。

outerText:

设置(包括标签)或获取(不包括标签)对象的文本 。
示例:

1
2
3
<div id="test">
      <span style="color:red">test1</span> test2
</div>
1
2
3
<a href="javascript:alert(test.innerHTML)">innerHTML内容</a>
<a href="javascript:alert(test.innerText)">innerText内容</a>
<a href="javascript:alert(test.outerHTML)">outerHTML内容</a>

###特别说明:
innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使用innerHTML,而少用innerText,如果要输出不含HTML标签的内容,可以使用innerHTML取得包含HTML标签的内容后,再用正则表达式去除HTML标签,下面是一个简单的符合W3C标准的示例:

1
<a href="javascript:alert(document.getElementById('test').innerHTML.replace(/<.+?>/gim,''))">无HTML,符合W3C标准</a>

未完待续…