六、ES6中数组的扩展
扩展运算符 原地展开一个数组 1234// 定义一个数组var arr = [1, 2, 3, 4];// 直接打印数组内每个元素console.log(...arr); // 1 2 3 4 函数调用时,逐个传入 1234567// 定义一个数组var arr = [1, 2, 3, 4];// 函数内取每个参数function fn(a, b) { console.log(a + b);}fn(...arr); // 结果3 实际传入的为数组第一个和第二个 复制数组 深复制:复制数组中的元素内容(数据) 浅复制:复制数组的内存地址 ES6的复制数组为深复制,即复制出的数组与原数组数据不会互相影响。 12345678var arr1 = [1, 2, 3, 4, 5];// 写法1-深复制var arr2 = [...arr1];arr2[2] = 6;// 写法2var [...arr3] = arr1;arr3[2] = 6;console.log(arr1, arr2, arr3); //[ 1, 2, 3, 4, 5 ] [ 1, ...
五、ES6中函数的扩展
函数参数的默认值 12345function fn(arg = 0) { console.log(arg);}fn(); // 0fn(100); // 100 与解构赋值配合使用 1234function fn([a, b = 0]) { console.log(a + b);}fn([1]); // 1 函数参数的作用域 1234567let v = 100;function fn(arg = v) { let v = 1000; console.log(arg);}fn(); // 100 rest参数 1234function fn(a, b, ...args) { console.log(a, b, args);}fn(1, 2, 3, 4, 5); // 1 2 [ 3, 4, 5 ] rest参数会将多余的参数放入到一个数组。 rest参数只能放在最后。 函数的length属性不包含rest参数 箭头函数 基本语法 1234567891011let fn1 = () ...
四、ES6中对象的扩展
对象的属性 ES6中允许直接将变量和函数作为对象的属性和方法。 1234567891011let name = "张无忌";function sayMe() { console.log("this is 张无忌");}var obj = { // ES6运行变量名直接作为对象的属性和方法 name, sayMe,};console.log(obj.name);//张无忌 Object的方法 is() 对同值相等算法的具体实现 12console.log(Object.is(+0, -0)); // falseconsole.log(Object.is(NaN, NaN)); // true assign(target,...sources)方法 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。 target:目标对象 sources:源对象 返回值:目标对象 12345678var obj = { name: "张无忌", age: 18, ...
三、ES6中字符串的扩展
判断是否包含 ES6提供了三个方法用于判断字符串是否包含。 includes(str,[index]) 判断指定位置开始,字符串是否包含指定字符串 startsWith(str,[index]) 字符串的索引值开始是否以另一个字符串开头 endsWith(str,[index]) 字符串的索引值开始是否以另一个字符串结尾 三个方法的使用方法基本保持一致。 区分大小写 第一个参数为待搜索的字符串 第二个参数表示开始的索引位置,默认为0 结果返回布尔值 12345let str = "xiaokangboke";console.log(str.includes("o")); //trueconsole.log(str.includes("o", 3)); //true// 区分大小写console.log(str.includes("O", 3)); //false 如果想要不区分大小写可以将字符串全部转化为大/小写,然后在判断是否包含。示例: 12345678let str = &quo ...
二、ES6中的解构赋值
解构赋值 ECMAScript 6允许按照一定模式从数组或对象中提取值,对变量进行赋值。这种赋值方式被称为解构赋值。 ECMAScript 6的“解构赋值”本质上属于“模式匹配”。赋值运算符两边的模式相同,左边的变量会被赋予对应位置的值。 变量的解构赋值 从指定的数组或对象中提取值,为指定变量进行赋值。 1var/let [变量名1,变量名2,变量名3] = 数组或对象 变量的索引值对应值的索引值。 123let [a, b, c] = [1, 2, 3];console.log(a, b, c); // 1 2 3 赋值失败 123let [a] = [];console.log(a); // undefined 以上代码相当于定义了一个变量a,但未初始化(赋值) 12let [n, m] = [1];console.log(n, m); // 1 undefined 以上代码表示由于变量只有一个,而定义变量有两个,因此m不会得到值。 不完全解构赋值 即定义变量的数量小于值的数量。 12let [a, b] = [1, 2, 3];console.log(a, b); // ...
一、ES6基本概念
ES6的概念以及运行环境 ES6即是一个历史名词,也是一个泛指。含义是5.1版以后的JavaScript的下一代标准。涵盖ES2015、ES2016、ES2017等 WebStorm配置 找到左上角的file,选择setting 选择Languages & Frameworks设置ES6选项。 新版的webstorm已经默认是es6了 Babel编译器 其主要作用是用于将ES2015+代码转化为向下兼容的JavaScript代码。 安装 12yarn add @babel/core @babel/cli @babel/preset-env -Dyarn add @babel/polyfill 通过以上命令安装后会导致只有当前项目才可以使用babel工具,因此为了所有项目都可以使用babel工具,可以进行全局安装。 12yarn global add @babel/core @babel/cli @babel/preset-envyarn global add @babel/polyfill 创建配置文件 也就是在项目根目录创建package.jso ...
Commit表情符号使用指南
.copy:hover{ color:#f47466; } 前言 写此文的目的仅仅是为了在commit操作时方便快速查找表情符号。因此参考互联网中同类型文章整理此文。参考文章/网站在本文末尾处已列出。 使用 在使用命令行提交commit消息时,可以通过:关键字:的方式进行使用表情。 1git commit -m ":tada: Initial commit" 表情列表 点击每行最右侧的复制会复制当前行的emoji代码。 emoji emoji 代码 commit 说明 复制 🎨 (调色板) :art: 改进代码结构/代码格式 复制 ⚡️ (闪电) 🐎 (赛马) :zap: :racehorse: 提升性能 复制 🔥 (火焰) :fire: 移除代码或文件 复制 🐛 (bug) :bug: 修复 bug 复制 🚑 (急救车) :ambulance: 重要补丁 复制 ✨ (火花) :sparkles: 引入新功能 复制 📝 (备忘录) :memo: 撰写文档 复制 � ...
个人博客如何选择图床
个人博客如何选择图床
hexo博客每天定时提交网址给百度
项目说明 首先说明下这是一个hexo的插件,和其他插件一样,只需要npm i即可安装。先说说我的需求:需求产生于建站之初,那时百度还搜索不到我的小康博客,因此借助Leancloud的环境搭建了一个每天定时提交的小程序,当时使用django框架进行的开发。后来由于各种原因,发现已经server 500了,不过不清楚原因,但无所谓了,因为我打算合理用actions进行重新开发。同样的出于原版的参考还是打算用python完成,但发现官网贴心的提供了一个curl命令提交。好吧,这就省下了很多事。因此开发了此插件。其原理: 此项目适合什么样的人群 想要提高百度收录量 本人不打算扩展必应搜索,谷歌搜索等其他平台。因此在国内对于大多数人来说百度还是主力,而谷歌不需要你主动,他会自己找到你。 使用了持续集成服务 不适用于本地hexo d命令的人群,因此这个命令不会讲GitHub的配置文件添加进去。因此如果你没有使用持续集成服务,那么可以考虑使用持续集成或者进入public目录手动git提交。 插件如何使用 安装插件 在你博客的根目录打开命令行,安装插件 1npm i hexo- ...