javascript运算符:
- 一元运算符:delete、void、++、--、+、-
- 位运算符:~、&、|、^、<<、>>、>>>
- 逻辑运算符:!、&&、||
- 乘性运算符:*、/、%
- 加性运算符:+、-
- 关系运算符:>、<、>=、<=、==、!=、===、!==(字符串比较ascii,如果有一个为数字另一个非null和undefined则全部转换为数字后在进行比较,null != 0,undefined != 0)
- 条件运算符:? :
- 赋值运算符:=、所有的算数运算符加上等号类似a = a + b(a += b)
- 逗号运算符:值为最后一个表达式的值。
javascript语句:
- 分支语句:if、if else、if else if
- 迭代语句:for、for in、do while、while
- 标签语句:lable : statement
- break:跳出代码块(如果没有标签则为最近代码块)
- continue:循环代码块
- with:更改作用域搜索顺序(首先搜索with指定的对象)
- switch:表达式可以是数字、字符串?
javascript函数:
- 函数定义
- 函数调用
- 函数返回值
- arguments对象
- Function对象(new function(arg1, arg2, ..., argN, function_body))
- Function对象的length属性:函数定义的参数数量
- 闭包(函数可以使用函数之外定义的变量)
javascript面向对象:
javascript没有类的概念,对象是通过function进行初始化的,类似构造函数。所以我们前面说的Number、String、Boolean和Object都是function,而function又是对象,这里我们需要特别注意。
javascript有三种对象:
- 本地对象(ECMA定义的类)Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
- 内置对象(ECMA定义的自动实例化的对象Global和Math)
- 宿主对象(如BOM和DOM)
javascript的对象作用域:只有公有作用域
this的功能:永远指向调用该方法的对象,并不一定是定义方法的所属对象。
定义类和对象
- 工厂方式,创建一个function,每次调用返回对象。
- 构造函数方式,创建一个function,每次使用new function进行对象的创建。
- 原型方式,空对象,然后扩展Function的prototype属性。
- 混合的构造函数/原型方式。
- 修改对象,对象实例化后对其属性和方法进行增、删、改的操作。
- javascript的继承机制,类的所有对象都继承一个对象实例,也就是构造函数对象的prototype。
- 要实现普通的面向对象特征我们需要使用javascript原有的prototype继承方式和动态绑定的能力进行模拟。对象冒充(call、apply方法)