今天的面试只是两个基础问题,但是还是木有回答好,鄙视自己下
为javascript中的string添加一些常用方法
String.prototype.trim() //去掉字符串左右两边的空白字符String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
这个问题考察对prototype的理解,同时考察了正则表达式,此处添加相关内容链接
http://yelb.iteye.com/blog/890354
http://blog.csdn.net/onebigday/article/details/5429868
http://jingyan.baidu.com/article/54b6b9c038b84f2d583b47f7.html
Person p = new Person(); 这一句做了些什么?
大体过程是:
1.开辟内存空间。
2.加载相应的class,相应的静态静态代码块也加载进来。
3.创建对象和p,调用构造方法(调用构造方法是默认执行的,只执行一次),给对象中的成员变量进行赋值(如没有指定值的话,jvm会自动给相应的成 员变量赋默认值)。
4.把创建好对象的地址赋值给 p。(不考虑父类的情况下)
或
1:因为new用到了person.class,所以会先找到Person类文件并加载到内存中。 2:执行该类中的static静态代码块,如果存在,即给person类进行初始化。 3:在对内存中开辟空间,分配内存地址。 4:在对内存中建立对象的特有属性,并进行默认的初始化。 5:对属性进行顺序初始化。 6:对对象进行构造代码块初始化。 7:对对象进行对应的构造函数初始化。 8:将内存地址值赋给栈内存中的P变量。 |