
js
文章平均质量分 66
没感情的菠萝头
前端淡水狗,变态发育中。
展开
-
前端面试题总结
性能优化前端浏览器缓存问题1.强缓存,可以通过cache-control和expires控制。cache-control:no-cache,no-store,must-revalidateCache-Control: must-revalidate(必须重新验证)Cache-Control: no-cache(必须始终在使用原始服务器之前先经过原始服务器的验证)Cache-Control: no-store (不缓存)指定expires的值为 时间戳,表示过期时间,这样在下次再向服务器请求原创 2020-06-12 13:28:24 · 315 阅读 · 0 评论 -
关于深拷贝和浅拷贝
浅拷贝就是当一个数组复制另一个数组时,比如b复制a,修改了a数组,b也会跟着修改。let a=[0,1,2,3,4], b=a;console.log(a===b); //truea[0]=1;console.log(a,b); //1,1,2,3,4深拷贝,是拷贝对象各个层级的属性。可以用递归的方法深拷贝function deepClone(obj){ let objClone = Array.isArray(obj)?[]:{}; if(obj &&转载 2020-06-12 13:27:32 · 369 阅读 · 0 评论 -
ES6模板方法
模板字符串(template string)传统的JavaScript语言,输出模板通常是这样写的。$('#result').append( 'There are <b>' + basket.count + '</b> ' + 'items in翻译 2018-05-21 22:24:38 · 10827 阅读 · 0 评论 -
ES6笔记下(深入浅出ES6—阮一峰)
SymbolES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。1.Symbol值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的Symbo...转载 2018-06-13 16:42:31 · 2752 阅读 · 0 评论 -
ES6和ES5语法区别(Reflect对象和Object对象 )
概述Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。//ES5写法try{ Object.defineProperty(target,property,attributes); ...转载 2018-07-06 18:59:20 · 2409 阅读 · 0 评论 -
ES6文档 思维导图笔记
最近学习了ES6语言。选了几个章节整理了笔记。。。API ECMAScript 6入门——阮一峰set和map数据结构Iterator和for…of循环Generator 函数promise对象...原创 2018-07-27 16:56:44 · 1162 阅读 · 0 评论 -
Generator实现抽奖业务逻辑和长轮询逻辑
在接触ES6又get了一些业务逻辑的实例方法。抽奖业务逻辑限制抽奖次数,不再把次数限制保存在全局变量,避免别人修改了次数。从服务端传参进来,增加了安全性。let txt = document.createElement('p'); txt.innerHTML = '当前抽奖剩余<span id = "count">5</span>次' docum...原创 2018-08-31 16:57:07 · 482 阅读 · 0 评论 -
Proxy和Reflect数据校验
//提供代理模块 function validator(target,validator){ return new Proxy(target,{ _validator:validator, set(target,key,value,proxy){ if(target.hasOwnProperty(key...原创 2018-08-30 01:01:22 · 327 阅读 · 2 评论 -
Vue组件实例
相同标签名的元素切换<div id="demo"&am原创 2018-12-18 15:03:14 · 3426 阅读 · 0 评论 -
vue 渲染函数 & JSX
createElement 参数接下来你需要熟悉的是如何在 createElement 函数中生成模板。这里是 createElement 接受的参数:// @returns {VNode}createElement( // {String | Object | Function} // 一个 HTML 标签字符串,组件选项对象,或者 // 解析上述任何一种的一个 async 异...转载 2019-01-14 00:23:04 · 502 阅读 · 0 评论 -
关于单文件组件
文件扩展名为 .vue 的 single-file components(单文件组件)使用 webpack 或 Browserify 等构建工具标签保存实例:模板文件:输入框组件 BaseInputText.vue:<template> <input type=&a原创 2019-01-26 23:21:44 · 1377 阅读 · 0 评论 -
Ajax概念、原理(2018.7.11后续: Promise对象实现Ajax操作例子)
一本正经的介绍AJAX:Asynchronous JavaScript and XML (异步的 JavaScript 和 XML) Ajax 不是某种编程语言,是一种在无需重新加载整个网页的情况下能够更新部分网页的技术。1.同步与异步Ajax三步骤: 运用HTML和CSS实现页面,表达信息;运用XMLHttpRequest和web服务器进行数据的异步交换;运用JavaS...原创 2018-04-28 09:40:09 · 374 阅读 · 0 评论 -
ES6和ES5语法区别(常量、作用域、箭头函数)
1.常量在ES3中,没有常量这一说。 在ES5中,通过变量的定义只读,不可修改。 在ES6中,用const定义常量也是只读,不可修改。举个例子,设置圆周率PI的值://es5写法Object.defineProperty(window,'PI',{ value:3.1415926,//定义属性值 writable:false,//是否只读})在控制台看 ...原创 2018-05-05 13:00:28 · 6034 阅读 · 0 评论 -
DOM对象方法
selectedIndex设置或返回下拉列表中被选选项的索引号。注释:若允许多重选择,则仅会返回第一个被选选项的索引号。语法: selectObject.selectedIndex=number15.JS获取select标签选中的值 var obj = document.getElementByIdx_x(”testSelect”); //定位id var index...原创 2018-03-30 17:44:20 · 151 阅读 · 0 评论 -
DOM querySelector() 方法和querySelectorAll()方法区别。
querySelector()返回文档中匹配指定 CSS 选择器的一个元素。语法 document.querySelector(“#demo”);参数:CSS 选择器, 必须。指定一个或多个匹配元素的 CSS 选择器。 可以使用它们的 id, 类, 类型, 属性, 属性值等来选取元素。对于多个选择器,使用逗号隔开,返回一个匹配的元素。注意: querySelector()...原创 2018-03-30 17:48:41 · 466 阅读 · 0 评论 -
Js深入浅出(数据、表达式运算符、语句、对象篇)
数据类型2.js隐式转换关于+-例如: var x = 10 + 5 ; //15 var x = "10" + 5; //105 var x = "10" - 5 //5加号可以是加法运算 也可以是字符串拼接, 减号则直接是减法运算变量num转换为数字:num - 0 变量num转换为字符串:num + “”== 等于 ===严格等于(类型...原创 2018-03-31 14:10:40 · 484 阅读 · 0 评论 -
关于for循环中的 object[i].index = i;
在写选项卡功能,当内容多个,需要循环遍历来操作,得知哪个选项卡和哪个选项内容匹配。遇到 object[i].index = i;相关博客:https://www.cnblogs.com/yeyeyemax/p/6877378.html这里object[i]是对象。aLi[i].index=i是给这个对象添加一个自定义属性index并且属性值为i,index就是索引的意思。当然这个属性名你可...原创 2018-03-29 00:34:26 · 1703 阅读 · 0 评论 -
js对象方法
js对象Object.defineProperty(obj, prop, descriptor) Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。语法 Object.defineProperty(obj, prop, descriptor)参数obj 要在其上定义属性的对象。 pro...原创 2018-04-06 00:29:09 · 2034 阅读 · 0 评论 -
js深入浅出(数组、函数、作用域、闭包)
数组1创建数组 var arr = [“a”,”b”,”c”] 或 var arr = new Array(); arr[0] = a; arr[1] = b; arr[2] = c2.数组的删增3.数组的迭代 4.二维数组的遍历var arrayStr=[[1,2,3],[4,5,6],[7,8,9]];for(var i=0;i<arraySt...原创 2018-04-06 22:37:46 · 654 阅读 · 0 评论 -
ES6和ES5语法区别(默认参数、对象代理)
的原创 2018-05-08 23:27:41 · 799 阅读 · 0 评论 -
ES6笔记上(深入浅出ES6—阮一峰)
在线转换Babel 提供一个REPL在线编译器,可以在线将 ES6 代码转为 ES5 代码。转换后的代码,可以直接作为 ES5 代码插入网页运行。转载 2018-05-16 23:34:00 · 75854 阅读 · 9 评论 -
js内置对象方法
String 字符串对象1. toUpperCase() 方法 字符串小写字母转换为大写 2. toLowerCase()方法, 字符串所有大写字母都变成小写的字符串 例如: var mystr="Hello world!"; var mynum=mystr.toUpperCase();以上代码执行后,mynum 的值是:HELLO WORLD!`...原创 2018-03-23 17:06:26 · 417 阅读 · 0 评论