![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
苹果派pie
这个作者很懒,什么都没留下…
展开
-
JS无法取得display:none元素的宽高
需求:鼠标点击某处后,显示隐藏的div。因需定位div位置,所以需要获取div的宽高。 问题:第一次点击显示总是出错,以后则正常。 原因:初始化时div.style.display="none"。用display:none表示不占用空间,元素没有物理尺寸。因此原生JS无法获得display:none的元素的宽高。 解决方案:初始化时用 visibility:h原创 2017-02-28 20:19:55 · 2950 阅读 · 0 评论 -
Js关于负数的右移与无符号右移运算
对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值是负数的移位,在移位过程中,高位补1,若符号位是0,表示是正数,在移位过程中高位补零,两者的前提是符号位保持不变: 对于负数的右移:因为负数在内存中是以补码形式存在的,所有首先根据负数的原码求出负数的补码(符号位不变,其余位按照原码取反加1),然后保证符号位不变,其余位向右移动到X位,在移动的过程中,高位补转载 2018-01-29 18:09:59 · 1514 阅读 · 0 评论 -
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 · 328 阅读 · 0 评论 -
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 · 377 阅读 · 0 评论 -
iphone微信移动端bootstrap的模态框modal失效VS点击失效
遇到的问题是,用bootstrap的modal在网页版及安卓手机上可以正常运行,但在苹果手机上失效。 触发模态框的按钮是用div写的,经过网上搜索,发现这不能说是bootstrap的问题 许多不是用来做交互的元素(如div,img)在ios上是不可点击的。 在ios中尽量使用button,与标签 (注意href可为空,但若无href属性,很可能依旧不可点击)原创 2017-07-07 14:43:59 · 3616 阅读 · 0 评论 -
用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 · 4488 阅读 · 0 评论 -
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 · 4927 阅读 · 0 评论 -
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 · 856 阅读 · 0 评论 -
display:none无transition动画过渡;height:auto的transition动画;
想实现类似bootstrap中collapse的功能。设置过渡动画的时候发现下面两个问题。 一、使用display:none和display:block是不会有transition动画效果的。 目前display属性不受支持。猜想原因是因为缓动是基于数值和时间的计算(长度,百分比,角度,颜色也能转换为数值)。而display是一个尴尬的属性,该计算什么值实现?原创 2017-03-14 23:08:32 · 19567 阅读 · 0 评论 -
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 · 14499 阅读 · 0 评论 -
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 · 553 阅读 · 0 评论 -
在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 · 6576 阅读 · 0 评论 -
JS中的“特性”与“属性” attribute与property
DOM元素的attribute和property很容易混倄在一起,分不清楚。特别区分一下。attribute是HTML标签上的"特性",它的值只能够是字符串property是DOM中的"属性",是JavaScript里的对象;attribute节点都是在HTML代码中可见的,而property只是一个普通的名值对属性。之所以attribute和property容易混倄在一起的原因是,很多attri...原创 2018-02-21 22:04:22 · 324 阅读 · 0 评论