自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 设置cookie、获取cookie、删除cookie

当我们需要设置一个cookie时,需要像下面这样写:document.cookie="name=val;expires=toDate"上面的代码中,我们通过字符串的 第一个等式 “name=val”,设置了一个 cookie 名为 “name” 、值为 “val” 的 cookie,它的到期时间是 “toDate”,注意 “toDate” 必须为毫秒数。如果需要获取或删除一个cookie值则需要更复杂的操作。我们试着封装几个方法来简化对 cookie 的增删查设置 cookiefunction

2020-12-13 21:31:47 1131 1

原创 数据结构和算法(一):数组

数组的迭代器函数every —— 如果每一次迭代都返回true,则该迭代器最终返回true,否则返回false。const arr = [12, 22, 35, 1, 99, 129, 3, 11]const ret = arr.every((val, index, arr) => { return val % 2 === 0 // 第三次迭代的时候返回了false,所有最终结果为false})console.log(ret) // => falsesome —— 如果有任何

2020-12-10 22:39:33 225

原创 jsonp跨域请求原理分析

function jsonp(url, params) { return new Promise(resolve => { // 将params对象拼接成 &key=val&key2=val2 的形式 let p = '' Object.keys(params).forEach(key => { p += `&${key}=${params[key]}` }) const body = document.body //

2020-12-01 22:13:32 223

原创 webpack篇(二):打包css文件

你需要先安装两个 loadernpm i css-loader style-loader -D再 webpack.config.js中新增module选项const path = require('path')module.exports = { mode: 'development', entry: './src/index.js', output: { filename: 'js/bundle.js', path: path.resolve(__dirname, 'dist'

2020-11-20 11:10:32 256

原创 webpack篇(一):基础配置

初始化项目npm init -y安装相关依赖,注意:下载 webpack-cli 源地址必须是npm的npm i webpack -Dnpm i webpack-cli -D项目根目录中创建 webpack.config.js 文件const path = require('path')module.exports = { mode: 'development', // 表示处于开发阶段 entry: './src/index.js', // 入口文件, output: {

2020-11-20 10:44:05 245

原创 Vue2.x 响应式原理

注:以下的所有代码演示仅用于阐述其原理,并非 vue 本身的源码实现Vue 2.x 响应式原理其核心就是 Object.defineProperty() 方法function observer(data) { // 仅当 data 为数组和纯对象时才执行 if (typeof data !== 'object' || data === null) { return } // 当 data 为一个数组时,替换其原型(vue 实例中的 data 不可能为数组,仅当vue实.

2020-09-22 16:15:13 459

原创 Vue.js 杂记

$event 是 原生的 event 对象watch 监听引用类型时**必须将deep选项设为true**watch: { info: { handler() { // do somting }, deep: true }}exact 事件修饰符对事件进行修饰时,多余的按钮按下将无法触发事件文本框标签中不能插入内容,如下写法是错误的<textarea>{{...}}</textarea> // 错误写法父组件的 created、.

2020-09-12 19:25:53 132

原创 my错题集合

下面这个js程序输出是什么?function Foo() { var i = 0 return function() { console.log(i ++); }}var f1 = Foo(), f2 = Foo()f1() // 0f1() // 1f2() // 0下列关于js的说法正确的是A. 所有变量在使用之前都必须做声明B. js是面下对象的程序设计语言C. js是解释性语言D. js前身是Oak语言该代码在浏览器中执行的结果是什么v

2020-08-19 21:38:40 236

原创 搭配Nginx上线Node项目()

购买云服务器购买完成之后进入控制台进入实例之后可能会显示 “当前实例列表为空,您可以新建一台实例”,此时需要将地域修改为你购买时选择的地域然后我们需要将它默认的密码重置了,选择上图中的重置密码即可,这个密码是连接远程服务器的密码。当然系统也给了一个默认的密码,在消息中心查看接下来配置安全组来允许外部访问相应的端口可以选择一键放通添加所有常用端口,也可以选择添加规则来按需放通如果是按需放通来源选项填写0.0.0.0/0,协议端口一般放通80、443端口(h

2020-08-13 15:28:24 240

原创 实现VSCode使用ESLint时自动保存的配置

使用 ESLint极大的提高了团队代码的一致性和规范性 。但编辑器不能帮我们自动将代码格式化成ESLint期望的格式,当我们的代码不符合ESLint校验规范时就会报错,非常影响开发体验。首先,需要为VSCode准备 ESLint 和 Prettier - Code formatter插件。 进入VSCode,Ctrl /⌘+,进入设置界面,点击右上角“进入设置(json)”按钮打开 settings.json,填入以下内容{ ··· // 保存时对代码进行格式化 "eslint

2020-08-05 23:07:51 1110

原创 JavaScript实现数组的随机排列

我们可以通过遍历数组,依次将该列表中的每一个元素与一个随机的元素位置互换,以此来实现列表的随机排列我们可以先声明一个函数,它返回一个区间为 [min, max] 的随机数function getRandom(min, max) { return Math.floor(Math.random() * (max - min + 1) + min)}遍历数组,依次将数组中的每个元素与一个随机索引的元素互换export function getRandomGroup(array) { .

2020-08-05 22:05:52 586

原创 JavaScript中client、screen、client、offset、page相关属性及函数总结

window.innerWidth,window.innerHeight返回网页在当前窗口中可见区域的高度和宽度,即 视口(viewport) 的大小(单位像素)。注意,这两个属性包括滚动条的高度和宽度。window.outerWidth, window.outerHeight返回浏览器窗口的高度和宽度,包括浏览器菜单和边框(单位像素)。window.screenX, window.screenY返回浏览器左上角相对于当前屏幕左上角的水平距离和垂直距离(单位像素)。windo

2020-08-05 21:30:21 909

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除