- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 前端性能优化总结
不断补充中~1、css动画优化:https://segmentfault.com/a/11900000004903282、JS性能优化:https://segmentfault.com/a/1190000000490326
2018-02-25 11:27:27
331
原创 JS中的“特性”与“属性” attribute与property
DOM元素的attribute和property很容易混倄在一起,分不清楚。特别区分一下。attribute是HTML标签上的"特性",它的值只能够是字符串property是DOM中的"属性",是JavaScript里的对象;attribute节点都是在HTML代码中可见的,而property只是一个普通的名值对属性。之所以attribute和property容易混倄在一起的原因是,很多attri...
2018-02-21 22:04:22
356
转载 Js关于负数的右移与无符号右移运算
对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值是负数的移位,在移位过程中,高位补1,若符号位是0,表示是正数,在移位过程中高位补零,两者的前提是符号位保持不变: 对于负数的右移:因为负数在内存中是以补码形式存在的,所有首先根据负数的原码求出负数的补码(符号位不变,其余位按照原码取反加1),然后保证符号位不变,其余位向右移动到X位,在移动的过程中,高位补
2018-01-29 18:09:59
1584
原创 JS中构造函数与new操作符
function Person(name,age){ this.name=name; this.age=age; this.sayName=function(){ alert(this.name);}}var person1=new Person("Bob",29);可以观察到:a.P
2017-10-10 19:50:53
356
原创 iphone微信移动端bootstrap的模态框modal失效VS点击失效
遇到的问题是,用bootstrap的modal在网页版及安卓手机上可以正常运行,但在苹果手机上失效。 触发模态框的按钮是用div写的,经过网上搜索,发现这不能说是bootstrap的问题 许多不是用来做交互的元素(如div,img)在ios上是不可点击的。 在ios中尽量使用button,与标签 (注意href可为空,但若无href属性,很可能依旧不可点击)
2017-07-07 14:43:59
3682
原创 JS函数声明提升和变量声明提升
简要归纳:1、分声明和赋值两种情况。声明提升到头部执行,赋值留在原地。2、变量声明:var a; 变量赋值 : var a=10;3、函数声明:function a(){}; 函数赋值:var a=function (){}; 如果function是声明中的第一个词,那么就是函数声明。否则就是函数表达式。4、用let进行的声明不会在块作用域中进行提升。1、JavaScript引擎首先会扫...
2017-06-27 23:21:22
408
原创 用Babel解决node.js运行ES6的问题
其实Node的最新版本已经支持绝大部分的ES6语法了。但是还是有少部分不支持不是。。 可以使用yarn或者npm,下面给出两种命令。我使用的npm。一、安装:1、假设我的项目目录是demo。那下面的所有操作都在demo目录下 cd demo2、创建package.json npm init3、安装babel-cli yarn add
2017-05-09 16:16:11
4538
原创 JS原型链中 _proto_和prototype及constructor的关系
总结:1、对象有属性_proto_,指向prototype。a. 对象的_proto_指向其构造方法的原型对象。b. 原型对象的_proto_指向上一级原型对象。c.2、方法除了有_proto_,还有属性prototype,指向该方法的原型对象。3、每个对象都有constructor指针,a. 指向创建该对象实例的构造函数。b. 原型对象指向对应的构造函数
2017-04-11 11:25:04
908
原创 js正则表达式中使用变量
但有变量str1=“abc”,想匹配st1中的字符串,常用的正则语句是 string.replace(/str1/g,str2);但运行后发现匹配的仍然是“str1”四个字符,不是abc。若想将str1作为变量来用,应该怎么做呢?可以利用构造函数来生成正则表达式。var reg=new RegExp(str1,"g");string.replace(reg, s
2017-03-27 10:28:11
5045
原创 display:none无transition动画过渡;height:auto的transition动画;
想实现类似bootstrap中collapse的功能。设置过渡动画的时候发现下面两个问题。 一、使用display:none和display:block是不会有transition动画效果的。 目前display属性不受支持。猜想原因是因为缓动是基于数值和时间的计算(长度,百分比,角度,颜色也能转换为数值)。而display是一个尴尬的属性,该计算什么值实现?
2017-03-14 23:08:32
19761
转载 Array.prototype.slice.call(arguments,1)
转自:http://blog.sina.com.cn/s/blog_62b6b0410100fwlj.htmlArray.prototype.slice.call(arguments,1)该语句涉及两个知识点。arguments是一个关键字,代表当前参数,在javascript中虽然arguments表面上以数组形式来表示,但实际上没有原生数组slice的功能,这里使用call
2017-03-12 00:01:33
589
原创 js数组及对象的赋值和引用
简要归纳: 1、普通的赋值是复制栈区内容。 2、基本类型的数据在栈区存放数据自身,var a=b; //a与b无关。 引用类型数据在栈区存放数据地址。 var a=b; //a,b联动 3、基本数据类型包括:undefined,boolean,number,string,null 引用类型:对象、数组、函数。
2017-03-10 10:01:44
14580
原创 在Mac上安装phantomjs及运行
可能是太简单了?搜网上并没有踩坑教程。搜索MAC上安装phantomjs,得到下面方法:下载phantomjs.zip并解压,bin/phantomjs直接可用。或者通过Homebrew安装brew update && brew install phantomjs或者通过MacPorts安装sudo port selfupdate && sudo port inst
2017-03-02 09:19:17
6693
原创 JS无法取得display:none元素的宽高
需求:鼠标点击某处后,显示隐藏的div。因需定位div位置,所以需要获取div的宽高。 问题:第一次点击显示总是出错,以后则正常。 原因:初始化时div.style.display="none"。用display:none表示不占用空间,元素没有物理尺寸。因此原生JS无法获得display:none的元素的宽高。 解决方案:初始化时用 visibility:h
2017-02-28 20:19:55
3034
原创 HTML 文档的字符编码未声明。如果该文件包含 US-ASCII 范围之外的字符。。。/escape函数被废弃
firefox报错: 纯文本文件的字符编码未声明。如果该文件包含 US-ASCII 范围之外的字符,该文件将在某些浏览浏览器配置中呈现为乱码。该文件的字符编码需要在传输协议层声明,或者在文件中加入一个 BOM(字节顺序标记)原因是使用了函数escape,换为encodeURI即可。
2017-02-01 23:11:10
9396
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人