
javascript
草木黄尘
难学能学、难行能行
展开
-
位操作符
突然发现,连位操作符都没有完全掌握。。。。。。 先引用一段:位操作符作用于最基本的层次上,即按内存中表示数值的位来操作数值。ECMAScript中的所有数值都以IEEE-754 64位格式存储,但是位操作符并不直接操作64位的值,而是先将64位的值转换成32位的整数,然后执行操作,最后再将结果转换回64位,对于开发人员来说,64位存储格式是透明的,则该过程就像是只存在32位的整数。对于有符号的整数原创 2016-03-16 16:11:10 · 469 阅读 · 0 评论 -
与元素大小相关的属性
元素区域由内至外依次为:内容区域、内边距、边框、外边距。(盒子模型)如下图: 通过以下四个属性可以取得元素的偏移量:、 offsetHeight:垂直方向上占用空间大小(像素),包括元素内容区高度、左右内边距高度、水平滚动条的高度(可见的)、上下边框高度。(不包括外边距),这里值为240。 offsetWidth:水平方向上占用空间大小(像素),包括元内容区素宽度、左右内边距宽度、垂直滚动原创 2016-03-10 22:36:30 · 413 阅读 · 0 评论 -
js性能优化
javascript是一种解释型语言,性能无法达到和C、C++等编译语言的水平,但还是有一些方法来改进。1、循环 JavaScript中的循环方式有for(;;)、while()、for(in)3种。其中for(in)的效率极差,因为for(in)执行过程中需要查询散列键。for(;;)和while()比较,while循环的效率要优于for(;;)。2、局部变量和全局变量 局部变量的访问速度转载 2016-03-23 08:13:45 · 559 阅读 · 0 评论 -
js几种跨域方法原理
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下表给出了相对http://store.company.com/dir/page.html同源检测的结果:要解决跨域的问题,我们可以使用以下几种方法:一、通过jsonp跨域在js中,转载 2016-03-23 17:00:30 · 385 阅读 · 0 评论 -
ECMAScript数据属性和访问器属性
ECMA-262中把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。” js中每个对象都是基于一个引用类型创建的。 创建自定义对象的最简单方式无非是创建一个object的实例,再为其添加属性和方法。 用对象字面量模式可以写成这样: 以上两种写法创建的person对象具有相同的属性和方法,这些属性在创建时都带有一些特征值,javascript通过这些特征值来定义他们的原创 2016-06-09 21:51:59 · 1179 阅读 · 0 评论 -
splice()方法删除二维数组项的问题
这么一段代码:var arr = [["a",1],["b",2],["c",3]];for (var i = 0 , len = arr.length; i < len; i++) { if (arr[i][0]==="a" && arr[i][1]===1) { arr.splice(i,1); }}console.log(arr);运行结果: 问题显原创 2016-07-16 12:29:38 · 3991 阅读 · 0 评论 -
前端主流框架双向绑定实现原理简述
一、AngularAngular的属性绑定语法为[attr]=porperty,事件绑定语法为(event)=fn。双向绑定的使用存在两种场景:1、在表单中双向绑定使用[(ngModel)]=porperty,但同时得设置name属性。其等价于绑定属性[value]=property + 绑定事件(input)=porperty.value = input.value。2、父子组件通信...原创 2018-08-27 22:33:45 · 3208 阅读 · 0 评论