javascript初接触(二)

接前面javascript初接触,继续学习。

表达式(Expression)与语句(Statement)

在JavaScript中,表示式是这样一种短句(phrase),它可通过被JavaScript解释器评估(evaluate)而得到一个值。

最简单的表达式是字面量(literals)和变量名。比如字面量有:

5.0

// 数值 字面量

"Qt is fun!"

// 字符串 字面量

true

// 布尔量 字面量

null

// null 字面量

/QtScript/

// 正则表达式 字面量

{ x:2, y:2 }

// object 字面量

[2,3,5,7,11,13,17,19]

// 数组 字面量

function(x) {return x*x;}

// 函数 字面量

这些简单的表达式可以通过各类操作符得到各类复杂的表达式。操作符:

 

与C++差不多

相对C++来说全新?

算数操作符

+ - * / % ++ --

 

相等操作符

== !=

 === !==

关系操作符

< > <= >=

 in instanceof

逻辑操作符

|| && !

 

位操作符

& | ^ ~ << >>

>>>

赋值操作符

= += -= 等

>>>=

其他

?: , . [] () new delete typeof

void

有些表达式可能有side effects,但是一般来说,表达式不做任何工作。做事情的是语句。表达式相当于短语,而语句则相当于一个完全的句子。

  • 表达式语句(带side effects的表达式,比如赋值、自增等)
  • 复合语句(类似C、C++,用大括号括住)
  • 控制语句 if、else、switch、while、do while、for、break、return、...
    • 需要学习的是 for/in ,不过和python又类似了
  • 异常处理 try、catch、finally、throw
  • 空语句 (单个分号 ; )
  • 其他
    • var
    • function
    • with

Object和Array

简单的创建方式是使用 字面量(literal)

var emptyObj = {}
var point = {x:0, y:0};
var circle = {x:point.x, y:point.y, radus:10};
var emptyArr = [];
var a = ["Qt", 5.0, true, [["core", "v8"], "script"]];

也可使用 new 操作符

var a = new Array();
var d = new Date();

Object 的属性,可通过 . 或 [] 访问。比如 circle.x 或 circle["x"]

Array 的元素通过 [数字] 访问

函数

这个东西,真的有些不适应,相当不适应

字面量与语句

函数可以通过下面两种方式创建:

function f(x){return x;}

通过语句

var f = function(x){return x;}

通过字面量表达式

字面量创建匿名函数,但看可以有一个可选的名字(在函数体递归的时候有用)

var f = function fun(x){return x;}

还可以通过Function()来动态地创建函数

var f = new Function("x", "return x;");

参数

调用时的参数 可以

  • 多于
  • 等于
  • 少于

定义时的参数

函数内可通过 arguments 获取所有参数.

通过length属性可以获得函数期待的参数个数(定义时的参数)。

属性与成员

刚说了一个 length属性,还有一个 prototype 属性(这个东西?恩,先放过)

还有两个成员函数:

  • apply() 和
  • call()

f.call(o, 1, 2);

类似:

o.m = f;
o.m(1,2);
delete o.m;

这儿的o 就是所谓的 Call Object了,在函数内,可以通过关键字 this 获取。


你可能感兴趣的:(JavaScript,function,object,正则表达式,prototype,Literals)