数据属性: 数据属性包含一个数据值的位置,在这个位置可以读取和写入值。 4个描述的行为特性: writable 表示能否修改属性的值。默认为true Enumerable 表示能否过过for in循环返回属性是否可以枚举。 configuralbe 表示是否能过来delete删除属性从来重新定义属性,能否修改其配置。 value 包含这个属性的数据值。读取属性值的时候,从这个位置读取。 写入属性值的时候,把新值保存在这个位置。这个特性的默认值为true。function ...
返回 Boolean 值,指出正则表达式使用的global 标志 (g) 的状态。默认值为 false。只读。 rgExp.global 必选项 rgExp 参数是正则表达式对象。 如果正则表达式设置了global 标志,那么global 属性返回 true,否则返回 false。 使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个。这也被称为全局匹配。一直不是很清楚javascript的global到底表现在哪些方面,所以今天特地做了几个测试:最终结果:...
ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设“深入浅出ES6”专栏,来看一下ES6将给我们带来哪些新内容。 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖。ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下。 1. for-of循环 这个东西用来循环数组很爽,原因呢,...
Nick Justice是GitHub开发者计划的一员。早在ES6语言标准发布之前,他就借助像Babel这样的转译器以及最新版本的浏览器在自己的项目中使用ES6特性。他认为,ES6的新特性将极大地改变JavaScript的编写方式。 ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台的ES5。目前ES6的标准化工作正在进行中,预计会在1...
JavaScript中的封装 封装简单地说就是让外界只能访问对象的共有变量和函数,隐藏细节和数据。 js中有三种方法创建对象,分别为门户大开型、用命名规范区分私有变量、闭包创建真正的私有变量三种。 1.门户大开型,是实现对象的最基础的方法,所有方法与变量都是共有的外界可以访问。var Book = function(name){ if(this.check(name)){ console.log("error"); throw new Error("name null"); } this.name = name; } Book.prototype...
jQuery 的横空出世,至今已有十个年头了,而它的长盛不衰显然不是没有理由的。jQuery是继prototype之后又一个优秀的Javascript库。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优...
其最经典的运用莫过于通用的addEvent函数:function addEvent(element, type, handler) { if (element.attachEvent) { //IE8及以下浏览器 element.attachEvent(on + type, handler); } else { //W3C标准浏览器 element.addEventListener(type, handler, false); } };函数可以通过检测attachEvent函数是否存在,以决定使用attachEvent或者addEventListener,这也是最简单的一种特性检测,因而通常在需要时才进行实时的检测。...
在上一篇中介绍了jQuery1.4版本新增的几个浏览器特性检测方案和具体的目的,本文将以事件为中心,介绍一个较为完整、通用的事件检测方案。事件检测,即检测某一事件在不同的浏览器中是否存在(可用),这在编写Javascript的过程中也非常重要,如mouseenter/mouseleave事件虽然实用,但并不是所有浏览器都提供了标准的支持,因此需要自己手动模拟,即:function addEvent(element, name, handler) { if (name == mouseenter && !ha...
下边是我自己写的一个类,类中有字段、方法 代码如下: //构造函数 function Person(name,sex,age) { this.name = name; this.sex = sex; this.age = age; }; Person.prototype.getName = function () { return this.name; }; Person.prototype.getSex=function(){ return this.sex; }; Person.prototype.getAge=function(){ return this.age; }; Person.prototype.setName = function (name) { this.name = name; }; Person.proto...
一、容易被忽略的局部变量 代码如下: var a = 5; (function(){ alert(a); var a = a ++; alert(a); })() alert(a); 思考这段代码的执行结果。 执行后,看看是否和你想象的一致? ok,这段代码里核心的知识点是 var a = a++,其中两个变量 a 都是匿名函数内部的局部变量,是同一个,和全局变量 a 是不一样的。 为什么?我们来看看ECMA规范对变量声明语句的定义: 代码如下: Description If the variable statement occurs inside...
本节html以下面的为例 代码如下: 百度 1.通过HTMLElement类型(对象)的属性获得和设置元素特性 代码如下: var div = document.getElementById("myDiv"); var img = document.getElementById("img1"); var a = document.getElementById("myA"); //取得元素特性 alert(div.id); //"myDiv" alert(div.className); //"bd",这里不是div.class,是因为class是保留关键字 alert(div.title); //"我是div" alert(a.href); //http://...
在项目中需要快速检测浏览器是否支持某CSS3特性,比如检测是否支持“transform”,然后我的布局会有两种完全不同的版式。 当然除开本文介绍的这种快速方法,还有一种更有名和更通用的方法,那就是modernizr,运行脚本之后它会在html的class上加上浏览器支持的所有特性的列表。 优点:js是可配置的,不需要的特性检测可以在配置脚本中去掉基于特性检测js库简单好用除此之外还有一种不太好的方法,那就是判断浏览器的UA,不好的原因是...
接下来应该是BOM和HTML5了,但是鉴于ECMAScript5相对于ECMAScript3的新变化比较多,而且这些变化也非常的有意思,因此在这篇文章中再将我认为的有意思的变化(并非全部变化)集中整理一下,但这里只是列举,不具体展开。 一、语法变化 1、关键字和保留字 在ES3中,使用关键字做标识符会导致“Identifier Expected ”错误,而使用保留字做标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎。在ES5中,关键字和保留字...
前言在JavaScript中,作用域、上下文、闭包、函数等算是精华中的精华了。对于初级JSer来说,是进阶必备。对于前端攻城师来说,只有静下心来,理解了这些精华,才能写出优雅的代码。 本文旨在总结容易忘记的重要知识,不会讲基本的概念。如果对基本知识不太熟悉,就去翻下《 JavaScript权威指南》吧~ 语言特性函数表达式 先看代码段:代码如下:[javascript] view plaincopyprint?var f = function foo(){ return typeof foo; /...
JavaScript 1.6 引入了几个新的Array 方法,具体的介绍见:New in JavaScript 1.6 。这些方法已经被写进了ECMA262 V5。现代浏览器(IE9/Firefox/Safari/Chrome/Opera)都已经支持,但IE6/7/8不支持。jquery的工具方法中提供了类似的功能。 1、Array.forEach()和jquery的$().each()。在数组中的每个项上运行一个函数。类似java5 增强的for循环。 代码如下:var ary = [2,4,6,8]; // js1.6 Array.forEach方法 ary.forEach(function(i)...