Welcome 微信登录

首页 / 脚本样式 / JavaScript

容易被忽略的JS脚本特性

容易被忽略的JS脚本特性

一、容易被忽略的局部变量 复制代码 代码如下: var a = 5; (function(){ alert(a); var a = a ++; alert(a); })() alert(a); 思考这段代码的执行结果。 执行后,看看是否和你想象的一致? ok,这段代码里核心的知识点是 var a = a++,其中两个变量 a 都是匿名函数内部的局部变量,是同一个,和全局变量 a 是不一样的。 为什么?我们来看看ECMA规范对变量声明语句的定义: 复制代码...
Array, Array Constructor, for in loop, typeof, instanceOf

Array, Array Constructor, for in loop, typeof, instanceOf

注意: JavaScript 中数组不是 关联数组。 JavaScript 中只有对象 来管理键值的对应关系。但是关联数组是保持顺序的,而对象不是。 由于 for in 循环会枚举原型链上的所有属性,唯一过滤这些属性的方式是使用 `hasOwnProperty` 函数,因此会比普通的 for 循环慢上好多倍。 遍历(Iteration) 为了达到遍历数组的最佳性能,推荐使用经典的 for 循环。 复制代码 代码如下: var list = [1, 2, 3...
Javascript学习笔记 delete运算符

Javascript学习笔记 delete运算符

一、语法 delete后面的表达式必须给出一个属性的引用,比如 var o = {a:1}; delete o.a; //此处o.a是对象o的属性a的引用 只有在with语句里才能使用单独的属性名 复制代码 代码如下: with(o){ delete a; } 二、delete的返回值 delete是普通运算符,会返回true或false。规则为:当被delete的对象的属性存在并且不能被删除时 返回false,否则返回true。 这里的一个特点就是,对...
关于元素的尺寸(dimensions) 说明

关于元素的尺寸(dimensions) 说明

在以往我都是对这些属性死记硬背,很少真正理解过,忘记了就查手册。看完本文我相信这种情况就不会再发生了。 元素占据的物理空间的尺寸 如果你需要获得元素占据的物理空间,那么使用offsetHeight和offsetWidth。 自然而然此物理空间必然包含的有:padding、滚动条、border。这两个属性与getBoundingClientRect()的height和width属性是一致的。 为了帮助理解请看下图:元素内容的可视区域的尺寸 可视区域包含pad...
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系

contains和compareDocumentPosition 方法来确定是否HTML节点间的关系

从那起,我已经对这些方法做了大量的研究,并且已经在很多场合使用他们。在很多任务中,他们被证明是非常有用的(特别关于结构的抽象 DOM 选择器)。 1、DOMElement.contains(DOMNode) 这个方法起先用在 IE ,用来确定 DOM Node 是否包含在另一个 DOM Element 中。 当尝试优化 CSS 选择器遍历(像:“#id1 #id2”),这个方法很有用。你可以通过 getElementById 得到元素,然后使用 .cont...
javascript 闭包

javascript 闭包

对于初学者来说,理解Javascript闭包(closure)还是比较困难的,而撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目,让初学者理解起来更加容易一些。 一、什么是闭包? “官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。相信很少有人能直接看懂这句话,因为他描述的太学术。 其实这句话通俗的来说就是:JavaScript中所有的function都是一个闭包...
javascript的闭包介绍(司徒正美)

javascript的闭包介绍(司徒正美)

闭包的定义非常晦涩——闭包,是指语法域位于某个特定的区域,具有持续参照(读写)位于该区域内自身范围之外的执行域上的非持久型变量值能力的段落。这些外部执行域的非持久型变量神奇地保留它们在闭包最初定义(或创建)时的值(深连结)。简单来说,闭包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对),而这些键值对是不会随上一级函数的执行完成而销毁。周爱民说得更清楚,闭包就是“属性表”,闭包就是一个数据块,闭包就是一个存放着“Name=Value”...
js substr、substring和slice使用说明小记

js substr、substring和slice使用说明小记

关于substr、substring和slice方法区别的文章,网上搜到了许多,文章内容也基本一致。而后,我将其中一篇文章中的代码挪到本地进行了测试,发现测试结果和原文中的有些出入。 我更相信自己亲自验证过后的代码,随后小记下来,供以后查阅。 substr 复制代码 代码如下: document.write("|" + str.substr(0,5) + "|" + "<br />"); document.write("|" + str.sub...
<< 521 522 523 524 525 526 527 528 529 530 >>