javascript深入浅出

第一章 数据类型

1,六种数据类型:原始类型(number,string,boolean,null,undefined) + object对象(Function Array Date)

2,隐式转换:NaN≠NaN,null==undefined,new Object≠new Object(用引用来比较而不是值), new Object()==new Object(),null==undefined

3,类型检测:typeof(typeof null==="object") 原始类型

                   instanceof(obj instanceof Object) 对象类型 基于原型链判断

                   object.prototype.toString

                   constructor     duck type

第二章 表达式和运算符

1,逗号运算符:var a=(1,2,3)那么a=3取最右

2,delete运算符:

3,new运算符:new创造构造器实例

 第三章 语句

1,没有块级作用域(也就是说变量定义在大括号里外不影响)

2,var a=b=1;(a是局部变量,b是全局变量) 应为var a=1,b=1;

3,严格模式: use strict

              报错(SyntaxError)

四 判断x == y

  1. 如果x不是正常值(比如抛出一个错误),中断执行。
  2. 如果y不是正常值,中断执行。
  3. 如果Type(x)与Type(y)相同,执行严格相等运算x === y。
  4. 如果x是null,y是undefined,返回true。
  5. 如果x是undefined,y是null,返回true。
  6. 如果Type(x)是数值,Type(y)是字符串,返回x == ToNumber(y)的结果。
  7. 如果Type(x)是字符串,Type(y)是数值,返回ToNumber(x) == y的结果。
  8. 如果Type(x)是布尔值,返回ToNumber(x) == y的结果。
  9. 如果Type(y)是布尔值,返回x == ToNumber(y)的结果。
  10. 如果Type(x)是字符串或数值或Symbol值,Type(y)是对象,返回x == ToPrimitive(y)的结果。
  11. 如果Type(x)是对象,Type(y)是字符串或数值或Symbol值,返回ToPrimitive(x) == y的结果。
  12. 返回false。
posted @ 2015-12-07 20:16  we are young  阅读(267)  评论(0编辑  收藏  举报