学习笔记

JavaScript权威指南——JavaScript的子集和扩展

子集的安全性

为了让JavaScript代码静态的通过安全检查,必须移除一些JavaScript特性:
  •  eval()和Function()构造函数在任何安全子集里都是禁止使用的,因为它们可以执行任意代码,而且JavaScript无法对这些代码做静态分析。
  • 禁止使用this关键字,因为函数(在非严格模式中)可以通过this访问全局对象。而沙箱系统的一个重要目的就是组织对全局对象的访问。
  • 禁止使用with语句,因为with语句增加了静态代码检查的难度。
  • 禁止使用某些全局变量。
  • 禁止使用某些属性和方法,以免在沙箱中的代码拥有过多的权限。这些属性和方法包括argumen[......]

阅读全文

By xiuhuwang, ago
编程技术

List中的removeAll()和HashSet的排序

今天修改同事代码的时候,发现数据无规律排序,但搜索语句里确实有order by,跟踪的过程中发现,数据处理过程中使用了HashSet来去除List数据中的冗余,然后返回新的List,此时就会出现排序混乱问题。搜了一下,原来HashSet保存数据的时候是无序的,导致返回的新的List也是无序的,所以每次查询得到的结果顺序都不一样。 初始代码:

public static void removeDuplicate(List<T> oldList){

Set<T> set = new HashSet<T>(oldList);

oldList.clear[......]

阅读全文

By xiuhuwang, ago
业界快讯

Java 8的新特性和改进总览

Java 8 正式版 发布了! 这是 Java 语言全新的版本,之前已经发布过多次 early access 版本。但现在的 Java 8 终于转正了,你可以通过这里下载 Java 8 正式版。 Java 8 的新特性请看这里。 其他一些相关链接:

Eclipse 对 Java 8 的支持方法请看这里。 Java 8 站内极速下载:ht[......]

阅读全文

By xiuhuwang, ago
学习笔记

JavaScript权威指南——正则表达式的模式匹配

正则表达式的定义

正则表达式是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,String和RegExp都定义的方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能。 JavaScript中的正则表达式用RegExp对象表示,可以使用RegExp构造函数来创建RegExp对象,不过RegExp对象更多的是通过一种特殊的直接量语法来创建。 正则表达式直接量定义为包含在一对斜杠之间的字符:

var pattern = /s$/;

可以用RegExp()构造函数创建:

var pattern = new RegExp("s$");

直接[......]

阅读全文

By xiuhuwang, ago
学习笔记

JavaScript权威指南——类和模块

类和构造函数

定义构造函数既是定义类,并且类名要大些,而普通的函数和方法都是首字母小写。

 构造函数和类的标识

原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,他们才是属于同一个类的实例。

JavaScript中的Java式的类继承

  •  构造函数对象

之前提到,构造函数(对象)为JavaScript的类定义了名字。任何添加到这个构造函数对象中的属性都是类字段和类方法。

  •  原型对象

原型对象的属性被类的所有实例所继承,如果原型对象的属性是函数的话,这个函数就作为类的实例的方法来调用。

  •  实例对象

类的每个实例都是[......]

阅读全文

By xiuhuwang, ago