
JavaScript
Stark6
与其用明天追忆昨天,不如活在当下。
展开
-
订 阅 模 式
class Subscription { #eventList = new Map(); #offLineList = new Map(); on(eventName, eventCallback, once = false) { const list = this.#eventList.get(eventName) || []; list.push({ eventCallback, once }); this.#eventList.set(eventName, li.原创 2021-09-01 16:03:38 · 192 阅读 · 0 评论 -
JS的继承(ES5)
function Person() { this.name = "Person name"; this.arr = [1, 2, 3];}Person.prototype.getFunName = function () { return "Person";};// 类式继承(function () { console.log("--------类式继承--------"); function Son() {} Son.prototype = new Person.原创 2021-08-10 15:30:00 · 189 阅读 · 0 评论 -
阿里笔试题
阿里笔试题笔试题及答案(答案是我自己写的)笔试题及答案(答案是我自己写的)/** * 找出数组中第k大和第m大的数字相加之和 * 说明:实现一个方法,找出数组中第k大的和第m大的数字相加之和 * 示例: * let arr = [1,2,4,4,3,5], k = 2, m = 4 * findTopSum(arr, k, m); // 第2大的数是4,出现2次,第4大的是2,出现1次,所以结果为10 */function findTopSum(arr, k, m) { /**原创 2021-02-25 10:43:47 · 1179 阅读 · 2 评论 -
vs code vue 开启调试模式
官网案例vue-cli官网有相关的教程,我在这里发现了一个注意事项,只有在chrome在当前文件的时候,设置的断点才会激活原创 2020-08-03 19:31:52 · 818 阅读 · 0 评论 -
根据数组中Object的title进行排序、A - Z方向
Array.prototype.sort()方法:可以对数组进行重排,接受一个函数https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sortlet ret = [ { title: "x" }, { ti...原创 2020-02-15 12:59:49 · 305 阅读 · 0 评论 -
ES6 Reflect
概述Reflect对象的设计目的:将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。 修改某些Object方法的返回结果,让其变得更合理。// 老写法try { Object.defineProperty(target, property, attributes); // success} catc...原创 2020-02-01 18:10:50 · 170 阅读 · 0 评论 -
ES6 Proxy
概述proxy是在目对象前架设一个“拦截”层,外界对该对象的访问都必须先通过这层拦截,因此提供了一种机制可以对外界的访问进行过滤和改写。var obj = new Proxy({}, { get: function (target, propKey, receiver) { console.log(`getting ${propKey}!`); return Refl...原创 2020-02-01 16:43:44 · 237 阅读 · 0 评论 -
ES6 Set 和 Map
Set基本用法set类似于数组,但成员是唯一的。Set本身是一个构造函数,用来生成Set数据结构。const a = new Set();[1,2,3,3,4,1,2,3,2,2,1].forEach(b => a.add(b));for(let i of a) { console.log(i)}// 1 2 3 4Set函数可以接受一个数组(或者其他ite...原创 2020-01-28 21:20:28 · 173 阅读 · 0 评论 -
ES6 Symbol
概述symbol是一种新的原始类型,表示独一无二的值。是JavaScript中第七种数据类型。symbol值通过symbol函数生成。对象的属性名可以有两种类型:字符串 symbol类型let s = Symbol();typeof s // 'symbol'Symbol函数前不能使用new命令,因为生成的symbol是原始类型的值,不是对象。由于symbol不是对象,所有...原创 2020-01-28 15:59:12 · 262 阅读 · 0 评论 -
ES6 对象的扩展
属性的简洁表示法ES6 允许直接写入变量和函数作为对象的属性和方法。var foo = 'bar'var baz = {foo}baz // {foo: 'bar'}// 等同于var baz = {foo: foo}ES6 允许在对象中只写属性名,不写属性值。属性值等于属性名所代表的变量。function f(x, y) { return {x, y}}...原创 2019-12-21 21:11:18 · 214 阅读 · 0 评论 -
ES6 数组的扩展
扩展运算符console.log(...[1, 2, 3]);1 2 3如同rest参数的逆运算应用合并数组let arr1 = ['a', 'd']let arr2 = ['b', 'e']let arr3 = ['c', 'f'][...arr1, ...arr2, ...arr3]与解构赋值结合[a, ...rest] = listconst [...原创 2019-12-21 16:49:05 · 173 阅读 · 0 评论 -
ES6 函数的扩展
函数参数的默认值function foo(x = 5) { let x = 1 // error const x = 2 // error}函数变量是默认声明的,在函数体内不能使用let或const再次声明,否则或报错。解构与默认值结合使用function foo ({x, y = 5}) { console.log(x, y)}foo({});...原创 2019-12-01 18:25:54 · 163 阅读 · 0 评论 -
ES6 数值的扩展
数值的扩展ES6提供了二进制和八进制数值的新写法,分别用前缀0b(0B) 和0c(oC) 表示。用前缀0b(0B) 和0c(oC) 的字符串转十进制数值需使用Number方法。Number.isFinite方法用来检查数值是否是有限的 Number.isNaN方法用来检测是否为NaNES6将parseInt方法和parseFloat方法移植到了Number对象上Number.p...原创 2019-11-27 23:19:44 · 164 阅读 · 0 评论 -
ES6 字符串的扩展
ES6加强了对unicode的支持,并且扩展了字符串对象。传统上,ES5只有indexOf方法可以用来确定一个字符串是否包含在另一个字符串中。ES6新增三种方法:(三种方法接收第二个参数,表示开始搜索位置)includes方法,返回布尔值,表示是否找到参数字符串 startsWith方法,返回布尔值,表示是否在源字符串的头部找到参数字符串 endsWith方法,返回布尔值,表示是否...原创 2019-11-23 16:00:02 · 161 阅读 · 0 评论 -
ES6 变量的解构赋值
数组的解构赋值基本用法:ES6允许按照一定的模式从数组和对象中提取值,然后对变量进行赋值,这被称之为解构。let [a, b, c] = [1, 2, 3];这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。let [foo, [[bar], baz]] = [1, [[2], [3]];let [ , , third] = ['foo', ...原创 2019-11-23 15:27:25 · 266 阅读 · 0 评论 -
计算浏览器div、鼠标位置
鼠标事件https://developer.mozilla.org/zh-CN/docs/Web/API/MouseEventElementhttps://developer.mozilla.org/zh-CN/docs/Web/API/ElementHTMLElementhttps://developer.mozilla.org/zh-CN/docs/Web/API/HTML...原创 2019-11-21 11:40:33 · 201 阅读 · 0 评论 -
ES6 let和const
let 命令let声明的变量仅在声明的代码块内有效for循环,循环体内部是一个单独的作用域:for(let i = 0; i < 3; i++ ) { let i = 'abc'; console.log(i)}// abc// abc// abc不存在变量提升var声明之前调用显示undefined,let声明之前调用会报错暂时性死区...原创 2019-11-20 23:41:54 · 154 阅读 · 0 评论 -
客户端信息
Screen对象https://www.runoob.com/jsref/obj-screen.htmlhttps://developer.mozilla.org/zh-CN/docs/Web/API/Screen原创 2019-10-29 13:41:40 · 328 阅读 · 0 评论 -
vuecli中使用express和mockjs模拟数据
首先npm安装express和mockjsnpm i expressnpm imockjshttp://mockjs.com/https://expressjs.com/en/5x/api.html之后在package.json内添加启动方式"scripts": { "api": "node app.js", "serve": "vue-cli-s...原创 2019-10-22 17:40:58 · 536 阅读 · 2 评论 -
正则表达式
正则表达式的定义RegExp()构造函数let temp = new RegExp("s$")直接量语法let temp = /s$/直接量字符正则表达式通过字母和数字的字面含义进行匹配,特殊的匹配项(需使用\转义)字符 匹配 字母和数字 自身 \o NUL字符 \t 制表符 \n 换行符 \v 垂直制表符...原创 2019-10-06 23:18:33 · 183 阅读 · 0 评论 -
vue-cli自定义路径、router重定向、JS和CSS导入的差异
vue-router的重定向 { path: '/', redirect: '/recommend' },redirect之后放字符串的path即可自定义路径在文件引入的时候使用../../的方法很是麻烦,这里介绍一个使用自定义路径引入文件的方法:在vue.config.vue中定义module.exports = { conf...原创 2019-10-02 18:23:47 · 355 阅读 · 0 评论 -
DOM包含判断,CSS滤镜,date对象转字符串
将date对象转为字符串var time = new Date()var timed = time.toLocaleDateString()// 2019/9/19timed.split('/).join('-')//2019-9-19判断DOM中是否存在DOMDOM_A.contains(DOM_B)之后返回布尔值滤镜效果CSS3中的filter属性,可实现高...原创 2019-09-20 00:16:05 · 135 阅读 · 0 评论 -
vue自定义指令
自定义指令和组件的使用方式很像,分为局部和全局注册。// 全局注册vue.directive('注册的指令名‘,{ // 指令选项)}// 局部注册// 在vue内directive: { 指令名称: { // 指令选项 }}自定义指令选项由几个钩子组成:bind:只调用一次,指令第一次绑定在元素时调用,用这个钩子可以定义一个在绑...原创 2019-09-19 23:54:00 · 128 阅读 · 0 评论 -
input多文件上传和显示图片(二)
上文讲到点击input触发change事件,之后在函数中创建formdata对象,for循环将files对象append到formdata对象的file属性中。let file = e.target.files// 这里拿到上传的文件this.file = new FormData()for(i=0;i<file.length;i++) { this.file.appen...原创 2019-09-10 11:47:56 · 323 阅读 · 0 评论