JavaScript权威指南6第一辑

JavaScript权威指南6第一辑

分类:前端攻城狮总结和归纳

1.解释空字符串为什么会转换为0___空数组隐式调用toString()转换成为空字符串,空字符串调用valueOf()转换为0

2.代码在顶层执行:Function构造函数在顶层执行,意味着它是全局的函数eval(): 可以解释运行js源码,会将其字符串当成顶层的全局代码执行,但不能使用或修改主函数中的局部变量

3.+x;把x转换为数字;

4.约定俗称:成员不能修改的变量(以大写字母命名的命名),成员在类外部是不可见的(以下划线为前缀的命名)

5.严格模式下,eval执行的代码段可以查询或更改局部变量,但不能在局部作用域中定义新的变量或函数

6.可写性,表明是否可以设置该属性,失败的情况{o中的属性p是只读的,,不能给只读属性重新赋值(defineProperty()方法中有一个例外,可以对可配置的只读属性重新赋值)o中的属性p是继承属性,且它是只读的: 不能通过同名自有属性覆盖只读的继承属性(o中的不存在自有属性p:o没有使用setter方法继承属性p,并且o的可扩展性是false,如果o中不存在p,而且没有setter方法可供调用,则p一定会添加至o中,但如果o不是可扩展,那么在o中不能定义新属性)}

7.可枚举性,表明是否可以通过for/in循环返回该属性

8.可配置性,表明是否可以删除或修改该属性

9.对象中最后一个属性的逗号不要写,IE下会报错

10.没有原型的情况,第一个参数是这个对象的原型

11.var obj2 = Object.create(null);

12.属性描述符{如果属性是不可配置的,则不能修改它的可配置性和可枚举性,如果数据属性是不可配置的,不能将它转换为存取器属性}

13.console.log("%s is %s years old!", name,years);

14.访问没有的属性___属性读写-异常声明变量,toString、函数声明都不能delete作用域:全局,函数,eval语句:以分号结尾

Object创建属性时,四属性值大默认值都是false

15.Student.prototype=Object.create(Person.prototype);默认属性描述符为false返回函数的原型:Object.getPrototypeOf(foo);没有prototype属性的情况: var binded = 函数名.bind(null);不能这样赋值,因为在改变Student的时候,Person也会跟着改变,这样不是我们想要的 Student.prototype =Person.prototype;

16.性能:按索引访问数组常常比访问一般对象属性明显迅速

17.使用join来代替"+"有助于性能优化

18.Object.defineProperty()创建的属性不可枚举,配置属性的特性,类的扩充

19.闭包的缺点:空间浪费,内存泄露,性能消耗

20.自定义对象是由运行中的js代码创建的对象

21.Object.create(); //设置对象原型,参数是这个对象的原型

22.只能用in运算符区分不存在的属性和存在但值为undefined的属性

23.枚举属性名称的函数两种方法:1.Object.keys();2.Object.getOwnPropertyNames();

24.对象继承:newobject()=>object.prototype=>Object.prototype=>null;

25.模拟重载实例function foo() {}foo = function() {}

26.调用子类方法Student.prototype.init = function() { Person.prototype.init.apply(this,arguments);

27.链式调用function() { return this;}

上一篇JavaScript函数声明前置下一篇json和jsonp的区别

愚者用肉体监视心灵,智者用心灵监视肉体

JavaScript权威指南6第一辑

相关文章:

你感兴趣的文章:

标签云: