![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
尼古拉斯-托尔斯泰-赵四
喜欢用笔记本的我,转用博客记录自己的学习成长之路~~~
展开
-
npm ERR! Unsupported URL Type “npm:“: npm:fork-ts-checker-webpack-plugin@^5.0.11
背景执行npm install时报如下错误npm ERR! code EUNSUPPORTEDPROTOCOLnpm ERR! Unsupported URL Type "npm:": npm:fork-ts-checker-webpack-plugin@^5.0.11npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142n原创 2020-09-29 18:32:04 · 6144 阅读 · 0 评论 -
ERROR: Failed to download Chromium r686378!
背景npm install 进行安装时,报如下错误ERROR: Failed to download Chromium r686378! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.原因原因是npm安装puppeteer时出的问题解决方案只需要在安装puppeteer时添加–ignore-scripts就ok了:npm i puppeteer --ignore-scripts...原创 2020-09-29 18:27:13 · 6686 阅读 · 2 评论 -
正则表达式在IOS和安卓端的兼容性问题
IOS端不支持零宽断言常用零宽断言:?<=、?<!、?!、?=IOS端不支持?<=、?<!、?!否则会报错:Invalid regular expression: invalid group specifier name原创 2020-05-29 14:07:00 · 2566 阅读 · 2 评论 -
TypeScript新特性概述
typescript中的数据类型typescript为了使代码编写更加规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了如下数据类型:boolean 布尔型number 数值型string 字符串型array 数组型tuple 元组类型enum 枚举类型any 任意类型nullundefinedvoid类型never型:是其他类型(null 和 undefined)的子类型,代表从不会出现的值。这代表声明never的变量只能被never类型赋值函数的写原创 2020-05-17 21:18:08 · 1319 阅读 · 0 评论 -
react-redux的provider和connect
react、redux、react-redux之间的关系Redux是React大家庭的一个重要成员,需要特别强调的是Redux本事是不依赖react的。Redux试图为React引用提供可预测化的状态管理机制。另外,Redux除了支持React后,还能够支持其他界面框架。但是如果要将React和Redux结合起来使用,就要一些额外的辅助工具,react-redux就是最常见最重要的一个。P...原创 2020-05-05 21:27:03 · 378 阅读 · 0 评论 -
页面优化中常常会说到减少 http 请求,应该如何理解
如题目所说,现在前端页面优化时经常会听到,减少http请求的做法,但是实际工作中经常会遇到,将公共的文件提取出来,防止一个文件太大。 这两个说法应该如何理解?如何取舍?http请求头的数据量每次请求都会带上一些额外的信息进行传输,当请求的资源很小,比如1个不到1k的图标,可能request带的数据比实际图标的数据量还大。 所以当请求越多的时候,在网络上传输的数据自然就多,传输速度自然就慢了。转载 2017-05-26 18:16:39 · 1629 阅读 · 0 评论 -
js中!!()的作用
我们知道JavaScript是一门弱类型的语言,但是,在使用中有时需要强制转化为相应的类型。所以,!!() ,这种写法有将弱类型转化为强类型的作用。这里提到类型转换不得不提两个概念:显式转换和隐式转化。显式转化:const a = parseInt(‘1111111111111’); const b = Obj.toString();隐式转化:var a = '111'+0;//a的结果为数值型;原创 2017-04-21 17:50:28 · 22004 阅读 · 2 评论 -
js 实现呼起(打开)app
我们知道,js是无法判断手机是否安装了某款app的,但是有时候我们会有这样的需求:点击下载app按钮,如果已经安装了这款app则呼起,如果没有安装则跳转到下载页。思路: 在前端,如果想实现上述问题,首先得有个url一个android或ios人员给的url。这个url的作用是呼起app。为啥调用这个url就能呼起app呢,因为,Android和iOS 开发人员开发时可以实现在安装这款app到手机时,原创 2017-03-30 13:06:25 · 23609 阅读 · 2 评论 -
动态插入script,并在加载完成后执行callback
不管三七二十八,先上代码:function loadScript(url, callback) { let script = document.createElement('script'); if (script.readyState) { // IE script.onreadystatechange = function () { ...原创 2018-05-29 20:57:19 · 9166 阅读 · 0 评论 -
html页通过条件注释语句来加载不同的js或css
另外:[if lt IE 5.5] : 小于运算符。如果第一个参数小于第二个参数,则返回true。[if lte IE 6] : 小于或等于运算。如果第一个参数是小于或等于第二个参数,则返回true。[if gt IE 5] : 大于运算符。如果第一个参数大于第二个参数,则返回true。[if gte IE 7] : 大于或等于运算。如果第一个参数是大于或等于第二个参数,则返回true。[i原创 2017-03-29 17:59:11 · 2949 阅读 · 0 评论 -
+new Date()
var a =+new Date();//获取时间解释如下:=+是不存在的;+new Date()是一个东西;+相当于.valueOf();知识回顾://4个结果一样返回当前时间的毫秒数alert(+new Date());alert(+new Date);var a=new Date();alert(a.valueOf());alert(a.getTime());原创 2017-06-04 21:13:00 · 3080 阅读 · 0 评论 -
markdown编译器(自己对照学习用)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2017-08-10 10:55:57 · 499 阅读 · 0 评论 -
Jquery append方法使用中遇到问题记录
简单举例说明://html<div class="answer"></div>描述: 功能:下滑加载更多,通过ajax请求到数据把组装好的html模板插入到list中。 实现:通过$(‘.list’).append(‘_html’); 方法把一个html模板插入到.list中,但是,触发加载更多多次后发现append()方法执行越来越慢。解决: 经排查,发现是要插入的_html模板中也存在.l原创 2017-09-24 23:40:54 · 1935 阅读 · 0 评论 -
监听url的变化
描述: 在实际的项目中,我们经常会遇到修改history的问题,如:通过pushState(state, title,url);修改浏览器history历史记录,那我们有没有好的方法可以监听url的变化呢? 示例:// 增加一条history历史记录history.pushState({}, 'test', '/myself/world/index'); // 监听前进后退$(w...原创 2018-06-05 10:45:41 · 8798 阅读 · 0 评论 -
特殊运算符: ‘|’
‘|’ 是个运算符,代表‘或’。具体使用: | , |= a|=b =&gt; a = a | b例:3 | 5 =7 , 5 | 3 = 7, 8 | 2 = 10分析: 拿 3 | 5 运算为例: ‘|’ 运算符会将运算符前后的数字转化为二进制编码:0011 和 0101 ,接下来会对比每位上的二进制数,如果两个都是0,则为0,如果有一...原创 2018-05-30 10:52:56 · 4104 阅读 · 0 评论 -
module.exports、exports、export、import、export default区别
写在前面这里涉及到CommonJs和Es6的知识,因此,想要充分的认识他们,少年,你需要修炼下CommonJs和Es6了。进入正题CommonJs规范:module.exports、exportsmodule.exports和exports 是commonJs的语法,大家熟知的node就是基于CommonJs语法设计的,node将每个文件视为一个拥有独立作用域链的模块,每个木块的类,变量,...原创 2018-11-08 11:53:24 · 1998 阅读 · 0 评论 -
Ajax局部页面刷新和history
ajax能实现页面的无刷新加载,但是会造成无法前进后退的问题。 我们可以人为的使用history.pushState来人造历史信息, 并且通过监听popstate事件来知道用户点击了浏览器后退或前进按钮,然后将页面元素还原到历史上的某个状态。// 点击查询按钮的时候人为构造一个浏览器历史$('#a').click(function() { $(targetSelector).load(url原创 2016-05-20 16:31:49 · 1755 阅读 · 0 评论 -
H5,API的pushState(),replaceState()和popstate()作用,用法
pushState和replaceState是H5的API中新添加的两个方法。通过window.history方法来对浏览器历史记录的读写。在 HTML 文件中, history.pushState() 方法向浏览器历史添加了一个状态。 pushState() 带有三个参数:一个状态对象,一个标题(现在被忽略了),以及一个可选的URL地址。state object — 状态对象是一个由 pu翻译 2017-03-04 18:21:16 · 16456 阅读 · 0 评论 -
点击浏览的的返回实现上个页面的变动
描述:如图,想要实现点击‘签到’跳转到‘签到页’,点击浏览器返回时,返回到‘个人中心页’,并且,‘个人中心页’的签到栏显示‘已签到’。思路一:返回时,刷新页面 ,这样的话会重新获取数据。方法1:页面不缓存,从而实现,点击浏览器返回按钮时,返回的页面是空白的,再让用户自己去刷新在页面的中加入下面的<meta http-equiv="pragma" content="no-cache"><meta h原创 2017-03-03 20:46:05 · 694 阅读 · 0 评论 -
Array.map()
定义和用法map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map() 方法按照原始数组元素顺序依次处理元素。注意: map() 不会对空数组进行检测。 注意: map() 不会改变原始数组。例:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)<原创 2016-07-20 11:09:18 · 599 阅读 · 0 评论 -
Audio对象
var soundButtons = document.querySelectorAll('.button-sound');for (var i = 0; i < soundButtons.length; i++) { var soundButton = soundButtons[i]; var soundName = soundButton.attributes['data-so原创 2016-07-28 17:47:22 · 770 阅读 · 0 评论 -
JavaScript 中一些值的比较,熟悉规范
[] == [];[] === [];{} == {};{} === {};结果:都为falsevar n0 = 123;var n1 = new Number(123);var n2 = new Number(123);var n3 = Number(123);var n4 = Number(123);n0 == n1; // truen0 == n3; //truen0 ===原创 2016-07-18 11:10:53 · 249 阅读 · 0 评论 -
手机网页中,长按会触发系统事件,解决办法。
在iPhone中只要给长按的div设置两个css,在没有特别定制过的安卓浏览器中也是可以的,但是在小米中就难了,因为小米长按页面中任何地方都会出现一个放大镜: -webkit-user-select: none;/*禁用手机浏览器的用户选择功能 */ -moz-user-select: none;另外在小米中 window.ontouchstart = function(e) {原创 2016-05-20 16:33:58 · 982 阅读 · 1 评论 -
iPad、iPhone、Android 横屏、竖屏(window.orientation实现)的知识点
function orient() { if (window.orientation == 90 || window.orientation == -90) { //ipad、iphone竖屏;Andriod横屏 } else if (window.orientation == 0 || window.orientation == 180) { //ip原创 2016-05-20 16:29:53 · 7338 阅读 · 0 评论 -
JavaScript 中的错误处理。
(1) 一中抛出异常处理的方法是直接调用栈的顶端使用try-catch,就像:function main(){ try{ bomb(); }catch(e){ //Handle all the error things }}(2)但是,器是事件驱动的,JavaScript中的错误也是一个事件,解析器在当前的执行上下文中执行后释放。 我们可原创 2016-05-20 16:27:23 · 459 阅读 · 0 评论 -
zepto tap “点透”的解决
触发点透事件的原因: 由于两个div重合,例如:一个div调用show(),一个div调用hide(),这个时候当点击上层的div(up)的时候就会影响到下层的那个div(up)的时候就会影响到下层的那个div(down),使其也触发相应的事件。解决办法: (1) github上fastclick库,它也能规避移动设备上click事件的延迟响应,https://github.com/ftlab原创 2016-05-20 16:22:15 · 1032 阅读 · 0 评论 -
package.json
name - 包名。version - 包的版本号。description - 包的描述。homepage - 包的官网 url 。author - 包的作者姓名。contributors - 包的其他贡献者姓名。dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。repository - 包代码存放的地方的类型,原创 2016-08-25 14:53:06 · 828 阅读 · 0 评论 -
子父页面的iframe方法调用
方法调用父页面调用子页面方法:FrameName.window.childMethod();子页面调用父页面方法:parent.window.parentMethod();DOM元素访问获取到页面的window.document对象后,即可访问DOM元素注意事项要确保在iframe加载完成后再进行操作,如果iframe还未加载完成就开始调用里面的方法或变量,会产生错误。判断iframe是否加载完成有原创 2016-10-21 11:37:51 · 711 阅读 · 0 评论 -
js实现关闭本页面,window.close()真的不能关闭chorm浏览器的页面吗?
window.close()但是,window.close()只能关闭通过window.open('url');打开的页面因此,思路:通过在本页面执行window.open()后,紧接着执行window.close();来实现关闭当前页面。代码如下:window.opener = null;//禁止某些浏览器的一些弹窗window.open('','_self');window.close()实原创 2017-03-17 18:40:59 · 28311 阅读 · 8 评论 -
var a = console.log(123)
如题:运行后,a的值是什么呢?132?undefined?答案是 undefined;因为,上面的表达式意思是将console.log(123)赋给变量a。我们都知道,console.log(123)是浏览器下的一个内置函数。但是需要注意的是‘123’并不是这个函数的返回值。所以,a的值不是123,console.log()只是实现了一个打印日志的功能。 例子:var a = (function(原创 2017-02-20 00:16:14 · 2446 阅读 · 0 评论 -
浅谈AMD和CMD
AMD(Asynchronous Module Definition)规范 CMD(Common Module Definition)规范AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。这些规范的目的都是为了 JavaScript 的模块化开发,特别是在浏览器端的。对于依赖的模块,AMD 是提前执行,CMD 是延迟原创 2017-02-19 23:57:46 · 1306 阅读 · 0 评论 -
jquery ajax()请求成功,在控制台可以看到返回的数据,但是回调函数中却取不到数据
描述:var nowPage,maxPage, //加载列表 request = function(nowPage,url){ var url = url?url:'../list.json'; console.log(url) $.get(url,function(data){ $('#managementSy原创 2016-12-14 12:21:40 · 19654 阅读 · 1 评论 -
delete 操作符 删除对像属性及相关知识
首先:delete操作符通常用来删除对象的属性,而不是一般的变量和函数。 例子://对象var o = { x: 1 }; delete o.x; // true o.x; // undefined //变量var x = 1; delete x; // false x; // 1 //函数function x(){} delete x; // false t原创 2016-11-17 18:36:41 · 542 阅读 · 0 评论 -
js处理剪贴板的内容
在学习这个知识点之前需要了解的是:在网页中一般是不允许访问“剪贴板”的,因为这样存在着很大的安全隐患在IE和FF中剪贴板的访问是可控的,但是在Opera、Chrome、Safari浏览器中是不允许访问的,这样就产生了浏览器兼容的问题接下来进入正题: JavaScript提供了clipboardData 对象来对剪贴板进行访问。clipboardData提供了三个方法: clearData(原创 2016-11-02 14:28:18 · 6706 阅读 · 0 评论 -
终止ajax请求
在实际的应用中,经常可能会遇到这种问题: 多次点击发出了多个ajax请求,但我们只想要最后一个的数据,这其中同时也存在一个问题,就是多次点击后返回的数据,不确定是不是最后一个点击返回的解决办法:jquery的abort()方法例:var ajaxRe = $.get("ajax.php",{id:1},function(data){ ....//一些操作 }); ajaxRe .原创 2016-10-31 18:30:16 · 7039 阅读 · 1 评论 -
iframe跨域通信
iframe跨域通信一直是个比较麻烦的东西用到的主要函数:iframe.contentWindow返回指定的frame或者iframe所在的window对象iframe.contentDocument指定的frame或者iframe所在的document对象Object.prototype.hasOwnProperty():hasOwnProperty() 方法用来判断某个对象是否含有指原创 2016-10-24 17:15:05 · 602 阅读 · 0 评论 -
CSS和JS动画,那个的效率更好。
首先,不要把JavaScript和jQuery错误的混为一谈。 jQuery展示动画会比原生JavaScript慢。 原因是尽管jQuery非常强大,但是他的目标从来不是成为一个高性能的动画引擎。由于jQuery提供了多种动画接口,所以无法避免布局抖动的问题。jQuery的内存消耗频会繁触发垃圾回收机制,造成动画丢帧的问题。jQuery为了保护其自身的动画机制,使用setInterval取代requ翻译 2016-05-24 11:40:23 · 5477 阅读 · 0 评论