js
文章平均质量分 71
baibaider
这个作者很懒,什么都没留下…
展开
-
关于隐式类型转换
少数情况下,js会发生隐式类型转换,我们不注意就会引起错误,总结一下。1.运算符的转换:-,*,/,%会将操作数转换为数字去计算,但+不一样,两边纯数字会按数字相加,纯字符串会拼接,但数字和字符串也会将字符串和数字拼接起来。 console.log("1 - '2'"); console.log(1 - '2'); //-1 console.log("1 * '2...原创 2018-04-14 15:33:59 · 1183 阅读 · 1 评论 -
js中sort方法的排序问题及localecompare方法
sort():对数组的元素先调用toString方法,再按照字符串的Unicode编码进行排序。 内部实现原理:插入和快排,数组元素<=22的时候,使用插入排序;再大的使用快速排序。(源码:v8实现array.js源码) 并且sort方法是会改变原数组的。localecompare():a.localeCompare(b);用本地特定的顺序来比较两个字符串,若a>...原创 2018-10-21 16:22:22 · 5228 阅读 · 1 评论 -
js算法
1. js实现大整数相加思路:就是我们算加法的思想,从后往前,逢十进一。如果不先reverse在循环里倒着加其实也是一样的,但是我觉得这么写更浅显易懂,但可能优化方面就不是很好,因为拿长数字做了基准。 var num1 = 999999999564569; var num2 = 666666666; function plus(num1, num2){ ...原创 2018-09-04 16:17:07 · 336 阅读 · 0 评论 -
input框的输入事件
要求:input框只能输入数字。问题:只判断e.keyCode的情况下,在中文输入法中出现了e.keyCode均为229的情况,不论输入数字还是其他。解决:修改input框的type为number,但会出现默认样式,并且并不能真的限制数字。(在中文输入法下还是能输入中文)1. 中文输入法在中文打出的字母没有真正的键入input框的时候是会触发事件的,但再点击回车d不...原创 2018-08-10 00:00:41 · 25325 阅读 · 0 评论 -
内部属性[[class]]
1. 对象的[[class]]属性所有typeof返回值为“object”的对象(如数组)都包含一个内部属性[[class]],这个属性无法直接访问,一般通过Object.prototype.toString(..)来查看。 console.log(Object.prototype.toString.call([1,2,3])); //[object Array] console...原创 2018-06-12 10:10:44 · 1407 阅读 · 0 评论 -
正则的方法及常用正则
1.正则的写法:var re = /a/; //使用字面量,相比构造函数性能较好(加载脚本后编译) var re = new RegExp('a'); //使用构造函数,(运行时编译)当你知道正则表达式模式将会改变,或者你不知道模式,并从另一个来源,如用户输入时。2.正则的方法:方法描述exec一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回null)。test一个在...原创 2018-04-22 17:47:23 · 642 阅读 · 0 评论 -
js深复制浅复制
深浅复制主要是针对于js的引用数据类型的,因为他们不只一层,并且修改一个变量是不希望修改到另外一个变量。概念:浅复制:只复制指向某个对象的指针,新旧对象共享一块内存,修改新对象会改到原对象上。深复制:不共享内存,修改新对象不会改到原对象上。实现:浅复制实现:js 简单的赋值操作一般实现的都是浅复制。深复制实现的七种方法:1. 手动复制:var obj1 = {"name":"baibai", "a...原创 2018-03-15 16:16:01 · 191 阅读 · 0 评论 -
高程的事件委托代码
事件委托:事件处理程序过多时,可以使用事件委托。例如:一个ul下有多个li都有点击事件,这时可以给ul上委托点击事件。并且事件委托的优点:事前消耗低,因为只取得一个DOM元素,占用内存更少。使用事件委托时:在DOM树中尽量最高的层次上添加一个事件处理。代码如下:<ul id="myUl"> <li id="goSomewhere">goSomewhere<...原创 2018-02-04 00:44:22 · 184 阅读 · 0 评论 -
stopPropagation(停止事件在dom层次的传播)
stopPropagation()是用于立即停止事件在DOM层次中的传播,即取消进一步的时间捕获或冒泡。例如,直接添加到一个按钮的事件处理程序可以调用stopPropagation(),从而避免触发注册在document.body上面的事件处理程序.<div id="btn">按钮</div> <script> var oBtn = documen...原创 2018-02-08 16:21:12 · 811 阅读 · 0 评论 -
实现继承和创建对象的方法
面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)。创建对...原创 2018-03-17 14:26:25 · 476 阅读 · 0 评论 -
this指向,作用域,闭包,原型链
this:关键字this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁。情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,严格模式下指向undefined。function a(){ var user = "白白"; console....原创 2018-03-17 19:53:29 · 399 阅读 · 0 评论 -
js的垃圾回收机制和内存分配
GC垃圾回收机制:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。不再使用的变量即指那些局部变量,全局变量的生命周期直到浏览器关闭页面才结束,这时会再清除一次。局部变量只在函数执行过程中存在,这个过程中会给它们分配内存去储存它们的值,然后在函数中使用,直至函数结束,而闭包是因为在函数外还有对这个变量的引用,所以并不会被垃圾回收机制清除。标记清除法(常用):垃圾回收器在运行的时...原创 2018-03-29 13:29:04 · 470 阅读 · 0 评论 -
highcharts属性的配置
一个从官网粘贴的简单代码示例:<div class="main"> <div id="container" style="min-width:400px;height:400px"></div> <script src="https://code.highcharts.com.cn/highcharts/highcharts.js"&...原创 2019-09-06 10:32:32 · 424 阅读 · 0 评论