JS部分

一,  词法结构

  1. 区分大小
  2. 注意://单行  /*多行注释*/
  3. 字面量(直接量literal)

12 // 数字

5.8//小数

“hello”

‘hello’

true

/js/gi  //正则

null    //空

{x:1,y:2}

[1,2,3,4]

  1. 标示符(变量)和保留字
  2. 分号可以省略但是可能会产生问题,js会自动补

var y = x+f

(a+b).toString()

等价于

var y = x+f(a+b).toString();

二.类型、值和变量

1.原始类型 数字、字符串和布尔 null空 undefined未定义

2.对象类型

3. 类 Array Function Date RegExp Error

4.js解析器 中集成了垃圾回收

5.任意js’的值都可以转为布尔值

undefined

null

0

-0

NaN

“” 都被转换为false

  1. 包装对象
  2. var=“hello” 原始类型(没有办法)

s.len= 4   当调用原始类型的属性或办法的时候(原始类型是没有属性和方法的)

只要引用留了字符串的属性方法,就会调用new String(s)把原始类型,包装成对象

以后调用s.len是调用String对象的属性和方法。一旦被引用结束,新创建的临时对象就会销毁

var n = s.len;   //此时为undefined

alert(n);

//调用字符串 布尔 数字的属性或方法时,创建的临时对象,是包装对象显示定义包装对象 var S= new String(“hello”)

var s = “hello;”是不同的

7.==和===

8.类型转换

var n = 17;

alert(n.toString(2));  //二进制  10001

alert(n.toString(8));  //  021

alert(n.toString(16)); //  0x21

alert(n.toString(10));  alert(n.toString());

9、toString()  valueOf()

var date = new Date(2011,1,3);

date.valueOf()   返回毫秒数代表的时间

10.js是动态类型 var n= 10;程序运行期间 ,才会确定变量的类型

11.变量作用域

函数作用域的声明提前

函数内定义的变量。声明自动提前到函数顶部

12.作用域链 scope chain

在不包含函数的函数体内 作用域链有两个对象 第一个是定义函数

参数和局部变量的对象 第二个是全局变量

在一个嵌套函数体内 作用域链上至少有三个对象

定义一个函数时,它保存了一个作用域,调用函数时它创建一个新的对象存储它的局部变量,并将这个对象添加到保存的那个作用域链上,同时创建一个新的更长的表示函数调用作用域的“链”。对于嵌套函数每次调用函数时,内部函数会重新定于一遍。每次调用外部函数的时候作用域链是不同的

13.delete in eval void

第五章

1.对象的基本操作 create   set  query  delete test  enumerate

2.对象属性特性;可写  可枚举 可配置(是否可删除)

3.对象的属性特性

对象的原始 prototype

对象的类  标示对象类型的字符串

对象的扩展标记 是否可添加新属性

4.创建对象的三种方法

var empty = {}

var point = {}

5.new创建对象

var o = new Object();  //空对象  和{}一样

var a = new Array()

6. Object.create()

var o1 = Object.create({x:1,y:2});  //o1 继承自对象原型{x:1,y:2}

var o2 = Object.create(null);       //o2不继承任何属性和方法

var o3 = Object.create(Object.prototype)

7.属性的操作 作为关联数组的对象

object .Property

object[“property”]散列 映射 字典 关联数组

  1. 继承

js的继承只能从父类获取属性的值,而不能修改原型链

如果对象book为null或uundefined

book.subtitle.length会报错

解决方法

var len = book && book.subtitle && book.subtitle.length;

删除属性

delete book.subtitle

检测属性  in  hasOwnPreperty()  propertyIsEnumerable()

var o = {x:1};

"x" in o

"toString" in o

hasOwnPreperty();判断属性是否是自己的。继承属性返回false

propertyIsEnumerable() 只有是自有属性,并可枚举

获取所有属性

Object.keys()

Object.getOwnPropertyNames()

9、属性getter和setter

var o = {

x: 0,

y: 1,

set r(value) { value = this.r;},

get r() { return this.x + this.y;}

};

x数据属性,r存取器属性

10、属性的特性  ecmascript5   老的ie不支持如下用法

数据属性的特性:值value 可写性writable

可枚举enumerable

可配置configurable

存取器属性特性:get  set

可枚举enumerable

可配置configurable

//返回{value:1,writable:true,emunerable:true,configurable:true}

Object.getOwnPropertyDescriptor({x:1},x)

//查不到属性 返回undefined

设置属性的特性  不能修改继承的属性特性

Object.defineProperty()

//设置不可枚举属性

var o = {};

Object.defineProperty(o,"x",{

value:1,

writable:true,

emunerable:false,

configurable:true

})

//设置只读

Object.defineProperty(o,"x",{writable:false})

修改多个属性特性

Object.defineProperties()

扩展Object.prototype   书 P137

11、对象的三个属性

prototype  class  extensible attribute

查询对象的原型

ecmascript5中 Object.getPrototypeOf(o1)

ecmascript3中 o1.constructor.prototype

通过对象直接量或new Object()方式创建的对象

包含一个constructor的属性,指Object()的构造函数

constructor.prototype才是真正的原型

p.isPrototypeOf(o)检测对象p是否是o的原型

//获取对象的类型 字符串

Object.prototype.toString.call(o1).slice(8,-1)

12、对象的可扩展性

对象是否可以新加属性

Object.preventExtensions() 设置对象不可扩展

Object.isExtensible()

Object.seal()  除了将对象设置为不可扩展,还将属性设置为不可配置

Object.freeze()

除了将对象设置为不可扩展,将属性设置为不可配置,还把属性设置为只读

第8章 函数

1、函数调用,方法调用

function t(){ }

t();  函数调用  this是全局对象  严格模式下是undefined

var o = {a:function(){}};

o.a()  方法调用  this是当前调用的对象

2、构造函数调用

var o = new Object();  var o= new Object;

o继承自构造函数的prototype属性  内部的this是此对象

var r = new o.m();中的this不是o

3、P184 函数的执行用到了作用域链,这个作用域链是函数定义的时候创建的。

嵌套的函数f()定义在这个作用域链里,其中的变量scope是局部变量

作用域链

调用s()将创建函数s的执行环境(调用对象),并将该对象置于链表开头,

然后将函数t的调用对象链接在之后,最后是全局对象。然后从链表开头寻找变量name

调用ss()     ss() ==>  t()  ==> window

name="lwy";

function t(){

var name="tlwy";

function s(){

var name="slwy";

console.log(name);

}

function ss(){

console.log(name);

}

s();

ss();

}

t();

每次调用函数。都会生成一个新的作用域链,包括新的内部变量

jQuery是什么?(了解)

www.github.com

  • • jQuery 其实就是一堆的js函数,是普通的js,只不过应用广泛,形成了行业标准。
  • • 参考书:锋利的jQuery
  • • 学习参考:http://www.w3school.com.cn/jquery/
  • • 官网:http://jquery.com/

2. jQuery的重点

  • • 2.1 jQuery入口函数(全球都会)
  • • 2.2 jQuery的选择器(其实就是CSS的选择器)
  • • 2.3 jQuery的Dom操作
  • • 2.4 jQuery的样式操作
  • • 2.5 jQuery的动画
  • • 2.6 jQuery的事件处理

3.jQuery的入口函数

  • • 3.1 语法

◦ jQuery(document).read(function(){ });

◦ $(function(){ });// **

◦ window.onlaod = function(){}

◦ $ === jQuery // $是jQuery全局函数的别名。

  • • 3.2注意事项: (重点)

◦ document ready: 是html文档准备就绪,也就是dom树创建完成了。可以进行dom操作了。

  • • 重要的是:html页面下载完成,并准备就绪

◦ window.onload: 是整个页面所有的资源都加载完成,图片、js、css等...

  • • 3.3 文档加载顺序: (重点)

◦ 下载html页面,解析html标签,遇到link标签加载css,遇到script加载js..

4. jQuery 选择选取元素

4.1 jQuery选择器

  • • 4.1.1 ID选择器(js一般尽量用ID选择器,效率最高) (重点)

◦ $("#id").html();

  • • 4.1.2 类选择器 (重点)

◦ $(".className").text();

  • • 4.1.3 标签选择器 (重点)

◦ $('p').click();

  • • 4.1.4 属性选择器

◦ $("li[id]")、 $("li[id='link']").fadeIn();

  • • 4.1.5 层级选择器 (重点)

◦ $("li .link").show();

  • • 4.1.6 父子选择器

◦ $("ul > li")

  • • 4.1.7 伪类选择器

◦ $("p:first")

◦ $("ul li:eq(3)")

  • • 4.1.8 表单选择器

◦ $(":text")

◦ $(":checkbox")

◦ $(":checked")

4.2 选择器汇总

*               $("*")              所有元素

#id             $("#lastname")      id="lastname" 的元素

.class          $(".intro")         所有 class="intro" 的元素

element         $("p")              所有 <p> 元素

.class.class    $(".intro.demo")    所有 class="intro" 且 class="demo" 的元素

:first  $("p:first")    第一个 <p> 元素

:last   $("p:last")     最后一个 <p> 元素

:even   $("tr:even")    所有偶数 <tr> 元素

:odd    $("tr:odd")     所有奇数 <tr> 元素

:eq(index)      $("ul li:eq(3)")    列表中的第四个元素(index 从 0 开始)

:gt(no)         $("ul li:gt(3)")    列出 index 大于 3 的元素 greater than

:lt(no)         $("ul li:lt(3)")    列出 index 小于 3 的元素 less than

:not(selector)  $("input:not(:empty)")  所有不为空的 input 元素

:header         $(":header")        所有标题元素 <h1> - <h6>

:animated       所有动画元素

:contains(text)     $(":contains('W3School')")  包含指定字符串的所有元素

:empty              $(":empty")                 无子(元素)节点的所有元素

:hidden             $("p:hidden")               所有隐藏的 <p> 元素

:visible            $("table:visible")          所有可见的表格

s1,s2,s3            $("th,td,.intro")            所有带有匹配选择的元素

[attribute]         $("[href]")         所有带有 href 属性的元素

[attribute=value]   $("[href='#']")     所有 href 属性的值等于 "#" 的元素

[attribute!=value]  $("[href!='#']")    所有 href 属性的值不等于 "#" 的元素

[attribute$=value]  $("[href$='.jpg']") 所有 href 属性的值包含以 ".jpg" 结尾的元素

:input      $(":input")         所有 <input> 元素

:text       $(":text")          所有 type="text" 的 <input> 元素

:password   $(":password")      所有 type="password" 的 <input> 元素

:radio      $(":radio")         所有 type="radio" 的 <input> 元素

:checkbox   $(":checkbox")      所有 type="checkbox" 的 <input> 元素

:submit     $(":submit")        所有 type="submit" 的 <input> 元素

:reset      $(":reset")         所有 type="reset" 的 <input> 元素

:button     $(":button")        所有 type="button" 的 <input> 元素

:image      $(":image")         所有 type="image" 的 <input> 元素

:file       $(":file")          所有 type="file" 的 <input> 元素

:enabled    $(":enabled")   所有激活的 input 元素

:disabled   $(":disabled")  所有禁用的 input 元素

:selected   $(":selected")  所有被选取的 input 元素

:checked    $(":checked")   所有被选中的 input 元素

4.3 jQuery选择方法

  • • 4.3.1 获取父级元素
  • * $(selector).parent();     //获取直接父级
  • * $(selector).parents('p'); //获取所有父级元素直到html
  • • 4.3.2 获取子代和后代的元素
  • * $(selector).children();   //获取直接子元素
  • * $(selector).find("span"); //获取所有的后代元素
  • * find方法 可能用的多。
  • • 4.3.3 获取同级的元素
  • * $(selector).siblings()    //所有的兄弟节点
  • * $(selector).next()        //下一个节点
  • * $(selector).nextAll()     //后面的所有节点
  • * $(selector).prev()        //前面一个的兄弟节点
  • * $(selector).prevAll()     //前面的所有的兄弟节点
  • • 4.3.4 过滤方法
  • * $("div p").last();        //取最后一个元素
  • * $("div p").first();       //取第一个元素
  • * $("p").eq(1);             //去第n个元素
  • * $("p").filter(".intro");  //过滤,选择所有p标签带有 .intro类
  • $('p.intro')
  • * $("p").not(".intro");     //去除,跟上面的filetr正好相反

5.jQuery的Dom操作

5.1 获取html的内容

$(selector).text() - 设置或返回所选元素的文本内容

$(selector).html() - 设置或返回所选元素的内容(包括 HTML 标记)

$(selector).val()  - 设置或返回表单字段的值

  • • 获取和设置相同方法名,通过不同参数来确定是获取还是设置值
  • $("#blin").text("贝沃汇力");
  • var txt = $("#blin").text();
  • • 使用html来创建dom的方式效率比较高。 远大于: document.createElement();

5.2 样式操作

  • • 5.2.1 基本样式操作
  • $(selector).css("color","red") |css({})  设置或返回匹配元素的样式属性。
  • $(selector).height()        设置或返回匹配元素的高度。
  • $(selector).offset().left   => { left:99, top: 22}     返回第一个匹配元素相对于文档的位置。left,top
  • $(selector).offsetParent()  返回最近的定位祖先元素。
  • $(selector).position()      返回第一个匹配元素相对于父元素的位置。
  • $(window).scrollLeft()    设置或返回匹配元素相对滚动条左侧的偏移。
  • $(window).scrollTop(0)     设置或返回匹配元素相对滚动条顶部的偏移。
  • <!-- onscroll -->
  • $(selector).on("scroll",function(){});
  • $(selector).width()         设置或返回匹配元素的宽度。
  • • 5.2.2 样式类操作尽量操作样式类,少直接操作css属性
  • $(selector).addClass('class');     向匹配的元素添加指定的类名。
  • $(selector).removeClass('class');  从所有匹配的元素中删除全部或者指定的类。
  • $(selector).toggleClass('class')   从匹配的元素中添加或删除一个类。
  • $(selector).hasClass('class')      检查匹配的元素是否拥有指定的类。

5.3 属性操作

$(selector).attr("id")      设置或返回匹配元素的属性和值

$(selector).removeAttr()从所有匹配的元素中移除指定的属性。

5.4 动态创建

$(selector).append()    - 在被选元素的结尾插入内容

$(selector).append(node)

$(selector).append('<div></div>')

$(selector).appendTo(); - 追加到..

$(selector).prepend()   - 在被选元素的开头插入内容

$(selector).after()     - 在被选元素之后插入内容

$(selector).before()    - 在被选元素之前插入内容

案例04城市选择案例.html

6. 事件处理

6.1 简单事件绑定方法

  • • .click(hander) .click() //绑定事件 或者触发 click事件
  • • .blur() //失去焦点事件,同上
  • • .hover(mousein, mouseleave) //鼠标移入,移出
  • • mouseout: 当鼠标离开元素及它的子元素的时都会触发。
  • • mouseleave: 当鼠标离开自己时才会触发,子元素不触发。
  • • .dbclick() 双击
  • • change 改变,比如:文本框发送改变,下来列表发生改变等...
  • • focus 获得焦点
  • • keyup, keydown, keypress : 键盘 键被按下。
  • • mousedown, mouseover

6.2 绑定事件的方式 bind方式(不推荐,1.7以后的jQuery版本被on取代)

  • • 语法格式:.bind( eventType [, eventData ], handler )
  • • 参数说明

◦ 第一个参数:事件类型

◦ 第二个参数:传递给事件响应方法的数据对象,可以省略。

◦ 事件响应方法中获取数据方式: e.data

◦ 第三个参数:事件响应方法

  • • 第二个参数可以省略。
  • 例如:
  • $("p").bind("click", function(e){
  • //事件响应方法
  • });
  • $("p").on('click',function(e){
  • //事件响应方法
  • })

6.3 delegate方式(推荐,性能高,支持动态创建的元素)

* 语法格式:$(selector).delegate( selector, eventType, handler )

* 语法说明:

- 第一个参数:selector, 子选择器

- 第二个参数:事件类型

- 第三个参数:事件响应方法

```

例如:

$(".parentBox").delegate("p", "click", function(){

//为 .parentBox下面的所有的p标签绑定事件

});

$(".parentBox").on("click","p", function(){

//为 .parentBox下面的所有的p标签绑定事件

});

```

*优势:效率较高*

6.4 one绑定一次事件的方式

* .one( events [, data ], handler )

例如

$( "p" ).one( "click", function()

alert( $( this ).text() );

});

$("p").on("click",function(){

$(this).off('click');//事件方法执行了一次后,就立即解绑事件

})

6.5 on绑定的方式(整合了bind、delegate 烈建议使用的方式))

  • • jQuery1.7版本后,jQuery用on统一了所有的事件处理的方法
  • • 语法格式:$(selector).on( events [, selector ] [, data ], handler )
  • • 参数介绍:

◦ 第一个参数:events,事件名

◦ 第二个参数:selector,类似delegate

◦ 第三个参数: 传递给事件响应方法的参数

◦ 第四个参数:handler,事件处理方法

例如

◦     //绑定一个方法

$( "#dataTable tbody tr" ).on( "click", function()

console.log( $( this ).text()

});

//给子元素绑定事件

$( "#dataTable tbody" ).on( "click", "tr", function() {

console.log( $( this ).text() )

});

//绑定多个事件的方式

$( "div.test" ).on({

◦       click: function() {

◦         $( this ).toggleClass( "active" );

◦       }, mouseenter: function() {

◦         $( this ).addClass( "inside" );

}, mouseleave: function() {

$( this ).removeClass( "inside" );

}

});

6.6 解绑

  • • unbind解绑 bind方式绑定的事件( 在jQuery1.7以上被 on和off代替)

◦ $(selector).unbind(); //解绑所有的事件

◦ $(selector).unbind("click"); //解绑指定的事件

  • • undelegate解绑delegate事件

◦ $( "p" ).undelegate(); //解绑所有的delegate事件

◦ $( "p" ).undelegate( "click" ); //解绑所有的click事件

  • • off解绑on方式绑定的事件

◦ $( "p" ).off();

◦ $("P").off('click');

◦ $( "p" ).off( "click", "**" ); // 解绑所有的click事件,两个*表示所有

◦ $( "body" ).off( "click", "p", foo );

6.7 触发事件

  • • 6.7.1 简单事件触发

◦ $(selector).click(); //触发 click事件

  • • 6.7.2 trigger() 方法触发被选元素的指定事件类型。

◦ $( "#foo" ).trigger( "click" );

  • • 6.7.3 triggerHandler触发 事件响应方法,不触发浏览器行为(triggerHandler() 方法触发被选元素的指定事件类型。但不会执行浏览器默认动作,也不会产生事件冒泡。)

◦ $( "input" ).triggerHandler( "focus" );

6.8 event对象的简介

  • • event.data //传递的额外事件响应方法的额外参数
  • • event.currentTarget === this //在事件响应方法中等同于this,当前Dom对象
  • • event.target //事件触发源,不一定===this
  • • event.pageX //The mouse position relative to the left edge of the document
  • • event.pageY
  • • event.stopPropagation()//阻止事件冒泡
  • • e.preventDefault(); //阻止默认行为
  • • event.type //事件类型:click,dbclick...
  • • event.which //鼠标的按键类型:左1 中2 右3
  • • keydown : a,b,c
  • • event.keyCode// code的c是大写

7. jQuery动画系统

7.1隐藏显示

* $(selector).show(speed,callback);

* $(selector).hide(1000);

* $(selector).toggle("slow");

* 三个方法的语法都一致,参数可以有两个,第一个是动画的速度,第二个是动画执行完成后的回调函数。

* 第一个参数是:可以是单词或者毫秒数

7.2淡入淡出

$(selector).fadeIn(speed, callback)

$(selector).fadeOut(1000)

$(selector).fadeToggle('fast',function(){})

参数等同于 7.1

* $(selector).fadeTo(.5); //淡入到  0透明,1不透明

7.3滑动

* $(selector).slideDown(speed,callback);

* $(selector).slideUp(speed,callback);

* $(selector).slideToggle(speed,callback);

7.4动画

* $(selector).animate({params},speed,callback);

$("button").click(function(){

$("div").animate({

left:'250px',

opacity:'0.5',

height:'150px',

width:'150px'

},2000);

}).animate({},1000);

7.5结束动画

* $(selector).stop()

* $(selector).stop(stopAll,goToEnd);

  • • 案例:

8. jQuery补充

  • • 8.1 each函数

◦ 全局的

▪ $.each(array, function(index, object){})

◦ 普通jQuery对象的each方法

▪ $("li").each(function(index, element){} )

参数的顺序是一致的。

JS和JQuery的总结的更多相关文章

  1. 【前端性能】必须要掌握的原生JS实现JQuery

    很多时候,我们经常听见有人说jquery有多快多快.在这个各种类库满天飞的时候,不得不说的是,能有原生JS快吗? 是的,明显原生JS要更快,因为诸如JQuery这样的库必须要兼容各种浏览器和低版本和许 ...

  2. 移动端用js与jquery实时监听输入框值的改动

    背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android ...

  3. label用js,jquery取值赋值,以及怎么在后台取值

    label标签在JS和Jquery中使用不能像其他标签一样用value获取它的值: 可以这样: JS: var label=document.getElementByIdx_x("id&qu ...

  4. JS与Jquery区别

    很多人对JS和JQuery很容易搞混淆,今天我们就相比学习下: 加载区别: var myfunction(){}; JS:1.window.onload=function(){} 2.<body ...

  5. js和jquery如何获取图片真实的宽度和高度

    按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式,下面为大家介绍下js和jquery如何获取图片真实的宽度和高度   1.什么时候需要获取图片真实的宽度和高度 在做pc网页 ...

  6. js和jquery获取当前对象的子元素

    开发中经常遇到需要获取ul下的il对象,个人总结了js和jquery的方法. HTML片断: <ul class="box"> <li>子元素1</l ...

  7. js+html+jquery 个人笔记

    js+html+jquery 笔记 1.获取HTML对象 var obj = document.getElementById(elementId) 对象的值: obj.value() 2.获取jQue ...

  8. prototype.js 和 jQuery.js中 ajax 的使用

    这次还是prototype.js 和 jQuery.js冲突的问题,前面说到过解决办法http://www.cnblogs.com/Joanna-Yan/p/4836252.html,以及上网说的大部 ...

  9. JS和JQuery总结

    目录目录    2js部分一.词法结构    1.区分大小写    2.注意   // 单行      /*  多行注释  */    3.字面量(直接量  literal)        12  / ...

随机推荐

  1. 基于Nginx dyups模块的站点动态上下线并实现简单服务治理

    简介 今天主要讨论一下,对于分布式服务,站点如何平滑的上下线问题. 分布式服务 在分布式服务下,我们会用nginx做负载均衡, 业务站点访问某服务站点的时候, 统一走nginx, 然后nginx根据一 ...

  2. MySQL架构优化实战系列1:数据类型与索引调优全解析

    一.数据类型优化 数据类型 整数   数字类型:整数和实数 tinyint(8).smallint(16).mediuint(24).int(32).bigint(64) 数字表示对应最大存储位数,如 ...

  3. ASP.NET MVC 必须设置 ErrorMessageString 或 ErrorMessageResourceName,但不能同时设置二者。

    解决方案: 1.此错误是指你的验证错误信息为空(required="")和required提示信息一致,引发的错误. 简单的来说就是两个验证错误提示消息一样了. 2.修改提示消息解 ...

  4. 配置windows 系统PHP系统环境变量

    1. 首先到php官网下载php-5.3.6-nts-Win32-VC9-x86.ZIP 解压到电脑硬盘.将文件解压到文件夹php5.3.6下载地址:http://www.php.net/downlo ...

  5. mui日期插件$, each遍历,EventListener事件监听,json格式

    (function($) { $.init(); var result = $('#result')[0]; var btns = $('.btn'); btns.each(function(i, b ...

  6. sql语法:inner join on, left join on, right join on详细使用方法

    inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有 ...

  7. iOS 图片大小压缩 图片尺寸处理

    图片的压缩其实是俩概念,1.是 “压” 文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降,2.是 “缩” 文件的尺寸变小,也就是像素数减少.长宽尺寸变小,文件体积同样会减小. 这个 UII ...

  8. for循环递归树

    protected string _menu = string.Empty; public void FirstAnsyData() { try { // List<object> lsN ...

  9. WinForm------TextEdit只能输入数字

    代码: this.textEdit1.Properties.Mask.EditMask = @"\d+"; this.textEdit1.Properties.Mask.MaskT ...

  10. 【转】Java enum的用法详解

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...