自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js原型对象

JavaScript 通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定义在构造函数内部。function Cat (name, color) { this.name = name; this.color = color;}var cat1 = new Cat('大毛', '白色');cat1.name // '大毛'cat1.color /...

2018-10-26 14:28:10 224

原创 js元编程

Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。(Proxy 实际上重载了点运算符,即用自己的定义覆盖了语言的原始定义。)ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。var proxy = new Proxy(target, handler);Proxy 对象的所有用...

2018-10-25 16:44:44 442

原创 js精度问题

js的精度太大太小都会有不同的问题,好在有很多好用的js库可以处理这些问题。常用库有math.js和big.js。我选择了big.js,因为文档比较好查且简单,在打开控制台可以直接写demo。big.js文档地址以下介绍常用的apiDP最大的小数精度范围,默认20Big.DP = 40RM超出精度时的舍入模式,0 截断,不舍入1 向0舍入2 四舍五入3向上舍入Big.RM...

2018-10-16 17:10:01 504

原创 vue 自定义指令

除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令。钩子函数一个指令定义对象可以提供如下几个钩子函数 (均为可选):bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。update:所在组件的 VNode 更新时调用,但是...

2018-10-15 17:13:21 1986

原创 js尾递归

在递归的过程中,需要占用内存的调用栈会越来越多,那么如果是一个无线递归的函数,势必会面临栈溢出的问题,当然了即便不是无限的,层数太多的话也会面临堆栈溢出的问题解决递归调用栈溢出的方法是通过尾递归优化或循环调用,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释...

2018-10-11 16:49:49 873

原创 js深拷贝

浅拷贝js普通的赋值属于浅拷贝,例如:var a=[1,2,3]var b=ab[2]=6console.log(a) //[1,2,6]因为a属于引用类型,它赋值给b的时候传的是栈中的地址,于是改变b那么a也会被改变。深拷贝网上有很多深拷贝的方法我就选取了一种简单明了的。思路就是利用json对象的stringify方法先转成基本数据类型,再转回引用类型。function d_...

2018-10-09 14:34:52 99

原创 js JSON对象

JSON对象是 JavaScript 的原生对象,用来处理 JSON 格式数据。它有两个静态方法:JSON.stringify()和JSON.parse()。JSON格式JSON 对值的类型和格式有严格的规定:复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, ...

2018-10-08 19:20:42 109

原创 vue 使用vuex来进行组件之间的通信

紧接着上一篇vue父子组件之间的通信,当我们的应用遇到多个组件共享状态时,单向数据流的简洁性很容易被破坏。多个视图依赖于同一状态。来自不同视图的行为需要变更同一状态。来自不同视图的行为需要变更同一状态。对于问题一,传参的方法对于多层嵌套的组件将会非常繁琐,并且对于兄弟组件间的状态传递无能为力。对于问题二,我们经常会采用父子组件直接引用或者通过事件来变更和同步状态的多份拷贝。以上的这些模式...

2018-09-29 15:45:03 3896

原创 vue父子组件之间的通信

demo的git地址 https://gitee.com/stones_song/vue-demo.git

2018-09-27 17:45:36 225

原创 js windows对象

计时器 setTimeout()和setInterval()可以用来注册在指定的时间之后单次或次重复调用的函数。 setTimeout 只会调用一次 需要调用clearTimeout()清除定时器 setInterval 会多次调用 需要调用clearInterval()清除定时器Location 对象 hash - 返回一个URL的锚部分 host - 返回一个URL的主...

2018-09-02 00:37:01 2019

原创 js 监听事件

有时,我们想要为常用操作启用键盘快捷键的web应用会为键盘事件注册事件处理程序。事件:鼠标事件键盘事件对象事件表单事件剪贴板事件打印事件拖动事件多媒体事件动画事件过渡事件其他事件事件的调用通过addEventListener(),但是在ie8及以前的浏览器中只能用一个类似的方法叫attachEvent()事件对象的属性bubbles 返回布尔值,指示...

2018-08-31 18:33:16 337

转载 vue的slot

个人理解:是对组件的扩展,通过slot插槽向组件内部指定位置传递内容,通过slot可以父子传参;开发背景(slot出现时为了解决什么问题):正常情况下,hello world在组件标签Child中的span标签会被组件模板template内容替换掉,当想让组件标签Child中内容传递给组件时需要使用slot插槽;Slot的通俗理解是“占坑”,在组件模板中占好了位置,当使用该组件标...

2018-08-22 16:51:25 298

原创 js的扩展

常量 可以用const来定义常量,常量可以看成不可重复赋值的变量,对常量的赋值会失败但不报错,对常量的重复声明会报错。局部变量可用let来定义,使用let最简单的方式就是批量替换程序中的var。通过var声明的变量在函数内都是可用的,而通过let声明的变量则只属于就近的花括号括起来的语句块。解构赋值 一个数组解构赋值的简单例子:let [x,y]=[1,2];[x,y]=[x...

2018-08-17 17:57:42 343

转载 原型对象和原型链

prototype和proto的区别prototype是函数才有的属性。 proto是每个对象都有的属性,并且只有部分浏览器实现了其属性。var a = {};console.log(a.prototype); //undefinedconsole.log(a.__proto__); //Object {}var b = function(){}console.log(...

2018-08-16 17:08:47 114

原创 正则表达式

什么是正则 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。兼容问题 在ie6-ie8下正则表达式创建的RegExp对象会共享同一个实例。js方法 js为正则提供的方法var text = 'test:1,2,3';var p = /\d+/g //匹配一个或多个数...

2018-08-14 14:26:50 143

原创 vue 懒加载

经测试//1.import Head from './head.vue';import Foot from './foot.vue';//2. 这种打出来的包最小const Head = () => import('./head.vue')const Foot = () => import('./foot.vue')//3const Head = r => ...

2018-08-09 16:00:15 217

原创 js 函数

函数只定义一次但可能被执行或调用任意次,但在定义的时候并不会执行。 函数的参数有形参和实参,形参是函数中定义的变量,实参是在运行是的函数调用时传入的参数。 函数使用function关键字来定义,es6可以用=>来定义,函数的组成:函数名一对圆括号(由0个或多个标识符组成,这些标识符是函数的参数名称,他们就像函数体中的局部变量)一对花括号(其中包含0条或多条js语句。一旦调用函数...

2018-07-01 16:02:48 494

原创 js 数组

数组是值的有序集合。 每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。(范围在0~2^32-2之间的整数属性名是数组的索引) 数组操作//创建删除数组var empty=[] //[]var misc=[1.1,,"a"]//[1.1,undefined,"a"]var a=new Array(10);//[] 数组为空 length为10//数组的读写m...

2018-06-26 10:26:29 116

原创 JS 对象

对象的介绍 对象是一种复合值,他将很多值聚合在一起,可通过名字访问这些值。 对象也可看作是属性的无序集合,每个属性都是一个名/值对。属性名是字符串,因此我们可以把对象看成是从字符串到值的映射。然而对象不仅仅是字符串到值的映射,除了可以保持自有的属性,js对象还可以从一个称为原型的对象继承属性。对象的方法通常是继承的属性。这种“原型式继承”是js的核心特征。 js对...

2018-06-24 19:13:21 152

原创 js 语句

语句就是js整句或者命令,以分号结束。基本语句表达式语句复合语句空语句声明语句JavaScript中有很多语句和控制结构来改变语句的默认执行顺序。条件语句 javaScript解释器可以根据一个 表达式的值来判断是执行还是跳过这些语句,如if语句和switch语句循环语句 可以重复执行语句,如while和for语句跳转语句 可以让解释器跳转至程序的其他部...

2018-06-22 19:01:05 434

原创 发布第一个npm包教程

天天安装npm包,先来没事自己也发了一个。好了,下面进入教程。发布第一个npm包1 首先安装好node,在npm上注册一个账号并验证邮箱 2 登陆npmnpm login输入账号密码邮箱地址后出现Logged in as xxx on https://registry.npmjs.org/.表示登陆成功。 3 新建npm文件npm init一直回车就好了 ...

2018-06-18 00:41:48 388

原创 js 表达式和运算符

表达式表达式分为原始表达式 常量/直接量: 3.14 “test” /\d+/ 等 关键字: null,this,true,false 等 变量: i,k,undefined 等(数组、对象的)初始化表达式 [1,2] 等价于 new Array(1,2); [1,,,2] 等价于 new Array(1,undefined,undefined,2); {x:1,...

2018-06-18 00:23:47 869

原创 js 类型,值,和变量(详细)

这边文章是对上一篇博客的补充。js的数据类型js的数据类型分为两类:原始类型和对象类型原始类型原始类型包含: - 数字(特殊的数字NAN和infinity) - 字符串 - 布尔值 - 特殊原始值null和undefined对象类型对象类型包含: - 对象 - 数组 - 日期 - 函数 - 正则表达式对象 - 等等…用xmind...

2018-06-17 23:26:47 377

原创 javascript 类型转换

javascript类型转换比较灵活,再此用一篇博客记录下。首先附上一张重要的javascript类型转换图表包含了简单的原始值转换。js为类型转换提供的方法Number(), parseInt(),parseFloat(),*1,-0// 转换为数字(通常是字符串)String(), .toString() ,+"" // 转换为字符串Boolean(),!! // 转换为布尔Object() ...

2018-06-09 22:13:55 512

空空如也

空空如也

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

TA关注的人

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