网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > DIVCSS技术 > 正文

HTML5和CSS3新的WEB标准和浏览器支持

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
ECMAScript 5 Property Descriptor

  对象属性的访问控制

  Object.getOwnPropertyDescriptor( obj, prop )

  Object.defineProperty( obj, prop, desc )

  Object.defineProperties( obj, props )

  desc = {

  value: true,

  writable: false, //修改

  enumerable: true, //for in

  configurable: true, //删除和修改属性

  get: function(){ return name; },

  set: function(value){ name = value; }

  }

  约翰同学的讲解:http://ejohn.org/blog/ecmascript-5-objects-and-properties/

  支持:无

  替代/过渡:Object.defineProperties其实相当于jQuery.extend,用来实现Mixin

  ECMAScript 5 Getters and Setters

  python和ruby里都有的属性访问方法

  obj = {

  get innerHTML() { return …; },

  set innerHTML(newHTML) { … }

  };

  MDC文档:https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters

  支持:Firefox 2.0+, Safari 3.0+, Google Chrome 1.0+, Opera 9.5+

  替代/过渡:

  非标准,Firefox1.5里的旧方法

  HTMLElement.prototype.__defineGetter__("innerHTML", function () {});

  HTMLElement.prototype.__defineSetter__("innerHTML", function (val) {});

  支持:Firefox 2.0+, Safari 3.0+, Google Chrome 1.0+, Opera 9.5+

  标准

  Object.defineProperty(document.body, "innerHTML", { get : function () {} });

  MSDN文档:http://msdn.microsoft.com/en-us/library/dd229916(VS.85).aspx

  支持:IE8+ (只能对DOM使用)

  ECMAScript 5 Strict Mode

  ES5的严格模式,删除了旧版本中容易引起问题的元素,并且会显式的报错,方便调试

  "use strict"; //以下情况下抛出异常

  //对未定义的变量赋值

  //操作被设置为不可写,不可配置或不可扩充的属性

  //删除变量,函数,参数

  //在对象直接量里重复定义属性

  //eval做关键字,在eval的字符串里定义变量

  //覆写arguments

  //使用arguments.caller和arguments.callee(匿名函数必须具名才能引用自己)

  //(function(){ ... }).call( null ); // Exception

  //使用with

  约翰同学的讲解:http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

  支持:无

  替代/过渡:……从现在开始养成严谨的编程习惯

  ECMAScript 5 其他新特性

  传递函数的引用时,绑定this

  Function.prototype.bind(thisArg, arg1, arg2....) /

  支持:无

  替代/过渡:prototype http://www.prototypejs.org/api/function/bind

  ISO-formatted dates

  Date.prototype.toISOString() // Prints 2009-05-21T16:06:05.000TZ

  支持:无

  替代/过渡:datejs http://code.google.com/p/datejs/

  String.prototype.trim()

  支持:Firefox3.5

  替代/过渡:各种正则实现 http://blog.stevenlevithan.com/archives/faster-trim-javascript

  ===================废话又开始的分割线=======================

  其实我把这个东西发出来是希望能促进创新的氛围,让更多人认识到很多新技术已经进入到“实用”阶段。

  如果只是想做个实验性的webgame,或是只能用于特定平台的应用(比如iphone,greasemonkey),firefox3.5+webkit的支持就已经足够罢。

  如果不能无视主流平台,有很多技术能让你gracefully degrade(优雅的退化)或者选取不同的方法实现兼容的接口。

  如果你等不及IE x在若干年后实现xx,希望提前享受福利,有些技术的设计原则就是让你能在没有native支持的情况下可以自己实现一模一样的功能或语法糖(syntactic sugar),比如ES5对象的继承和访问控制,从ES4/ActionScript3时期那些老土的关键词(class extands private static)改成了Object.create(p, attrs).defineProperty(o, n, attrs).defineProperties(o, attrs).freeze().getOwnPropertyNames().map(fn),不会只是为了酷炫罢……

  很多人都喜欢抱怨“我这辈子都没机会用HTML5”,但是只要把视线从自己脚下那巴掌大块地移开看看别处,会发现世界其实一直都在改变喔XD

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师