![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
文章平均质量分 52
羊第一季
Yesterday you said tomorrow-Just do it!
展开
-
js大数相加
var vaule=1+1(答案是2)var vaule2=843529812342341234+236124361425345435(正确答案是1079654173767686669,但js相加得出的答案却是1079654173767686700)为什么?首先按照JavaScript中数字格式,能够表示整数范围是从-9007 199 254 740 992~9007 199 254 740...转载 2019-03-15 01:23:26 · 836 阅读 · 0 评论 -
JS Number类型的数值转换
js有5种基本数据类型: undefined, Null, Boolean,Number, String(, Symbol).还有一种复杂类型数据: Object.Number()Number类型采用IEEE 754 64位格式存储,所以jS中的整数和浮点数都是以浮点数表示。浮点型数值占据的内存空间是整数型的两倍,所以JS会不失时机的把浮点数转换为整数。位操作符不直接操作64位的值,而是...原创 2019-03-24 00:41:18 · 3550 阅读 · 0 评论 -
正则表达式
正则表达式:用于匹配字符串中字符组合模式。在JS中,正则表达式也是对象。与RegExp(exec和test方法),String(match, replace, search, split方法)结合使用。几个概念(keys):贪婪模式&非贪婪模式:匹配尽可能多的字符 以及 匹配尽量少的字符元字符:量词:分支/(a| b| c)/,字符集/[abc]/(罗列)相当于/[a-c]...原创 2019-04-08 23:53:54 · 248 阅读 · 0 评论 -
浏览器 "Script error"
先看浏览器中的错误:Error: foobar at new bar (<anonymous>:241:11) at foo (<anonymous>:245:5) at callFunction (<anonymous>:229:33) at Object.InjectedScript._evaluateOn (<ano...原创 2019-05-13 22:28:11 · 2344 阅读 · 0 评论 -
简单实现模版引擎
现在的模板引擎挺多的,语法也多样,像handlerbar.js, template.js, artTemplate等等,模板引擎流程如下:模板 -> 输入到模板引擎 -> 生成函数 -> 把数据当成参数,执行该函数 -> 输出结果其中原理都是离不开正则匹配出语句,并将语句放入数组中并执行。以下是两个简单实现template引擎的例子:template1: htt...原创 2019-05-26 15:54:38 · 280 阅读 · 0 评论 -
最优(快)Js写法
测试js 相同实现某功能 最优(快)写法 和 一些例子的网站:http://jsben.ch/wQ9RUhttps://jsperf.com/测试js 相同实现某功能 最优(快)写法的Js:https://benchmarkjs.com/Js库 最优(快)写法替代实现功能:https://github.com/codemix/fast.js...原创 2019-05-27 22:42:49 · 309 阅读 · 0 评论 -
Babel
1.Babel简介Babel是一个工具链,主要用于将ECMAScript 2015+代码转换为当前和旧版浏览器或环境中的向后兼容版本的JavaScript。以下是Babel可以做的主要事情:转换语法Polyfill功能,目标环境中缺少的(通过@babel/polyfill实现)源代码转换// Babel Input: ES2015 arrow function[1, 2, 3].m...原创 2019-06-02 14:04:39 · 606 阅读 · 0 评论 -
JavaScript参数中的中括号
中括号代表 参数可选举例:buf.write(string[, offset[, length]][, encoding])例子中:第一个参数string没有中括号,意思是必须传的;offset[, length]]和 encoding在中括号内,为可选参数,即offset, length, encoding可传可不传;[, length]外面是offset,意味着没有传offset...原创 2019-03-14 10:02:01 · 1963 阅读 · 0 评论 -
Javascript中的this
我们知道JavaScript执行上下文中有三个重要属性:VO/AO和scope chain,以及this指针。我们今天就来看下this指针。 首先看看下面两个对this的概括: this是执行上下文(Execution Context)的一个重要属性,是一个与执行上下文相关的特殊对象。因此,它可以叫作上下文对象(也就是用来指明执行上下文是在哪个上下文中被触发的对象)。 &amp;nbsp;...转载 2018-07-21 18:40:12 · 741 阅读 · 0 评论 -
数组去重的几种方法
1. 常见function distinct1(array){ var n = []; //一个新的临时数组 //遍历当前数组 for(var i = 0; i < array.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n....原创 2018-05-17 17:26:00 · 233 阅读 · 0 评论 -
深度copy对象或数组,兼容浏览器
function cloneObj (obj) { var str, newobj = obj.constructor === Array ? [] : {}; if (typeof obj !== 'object') { return; } else if (window.JSON) { ...原创 2018-05-17 17:51:37 · 296 阅读 · 0 评论 -
js块级作用域
首先看一个常见的函数,该函数输出的是什么呢? 对的,就是5个6. 为什么会这样呢?因为setTimeout是个异步函数,每次循环的时候都会创建一个定时器,任务放到队列里,等主线程执行完才会执行定时器,这个时候循环跑完了,最后一次的 i = 5 + 1 = 6,所以输出5个6.for (var i = 1; i &lt;= 5; i++) { setTimeout(function t...原创 2018-05-17 23:30:43 · 158 阅读 · 0 评论 -
Shim Polifill区别
Shim Shim 指的是在一个旧的环境中模拟出一个新 API ,而且仅靠旧环境中已有的手段实现,以便所有的浏览器具有相同的行为。主要特征:该 API 存在于现代浏览器中; 浏览器有各自的 API 或 可通过别的 API 实现; API 的所有方法都被重新实现; 拦截 API 调用,并提供自己的实现; 是一个优雅降级。 Polyfill polyfill 是一段代码(或者插件),...转载 2018-05-13 17:22:10 · 344 阅读 · 0 评论 -
Apply()
Function.proptotype.apply(thisArg, [argsArray])thisArg 可选的。在 func 函数运行时使用的 this 值。argsArray 可选的。一个数组或者类数组对象,其中的数组元素将作为单独的参数传给 func 函数。call()方法的作用和 apply() 方法类似,只有一个区别,就是 call()方法接受的是若干个参数的列表,而...原创 2018-05-20 23:49:23 · 214 阅读 · 0 评论 -
es6 展开运算符
展开运算符不能用在对象当中,只能在可遍历对象中使用(iterables)。iterables的实现是依靠[symbol.iterator]函数,目前只有Array,Set,String内置[Symbol.iterator]方法,不过es7草案中已经加入了对象展开运算符。可用展开运算符展开数组,解构数组,拷贝数组,类数组对象变成数组等。 像拷贝数组一样,我们常常使用Array.Prototyp...原创 2018-05-08 16:13:34 · 548 阅读 · 0 评论 -
Js 执行上下文
Javascript有三种代码运行环境:Global, Function 和 Eval函数内部的执行环境。为了表示不同的运行环境,JavaScript中有一个执行上下文(Execution context,EC)的概念,也称执行环境。 当JavaScript代码执行的时候,执行流会进入到相应的执行环境,该执行环境被推入到一个环境栈中,函数执行之后,js引擎将其环境从栈中弹出,将控制权返回给之前的...原创 2018-06-30 22:29:15 · 317 阅读 · 0 评论 -
柯里化(Currying)
/**柯里化(Currying),又称部分求值(Partial Evaluation),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术参考: https://www.jianshu.com/p/2975c25e4d71https://www.zhangxinxu.com/wordpress/2013/02/js-...原创 2019-08-31 16:37:29 · 203 阅读 · 0 评论