接前面javascript初接触,继续学习。
在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,但是一般来说,表达式不做任何工作。做事情的是语句。表达式相当于短语,而语句则相当于一个完全的句子。
简单的创建方式是使用 字面量(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 属性(这个东西?恩,先放过)
还有两个成员函数:
f.call(o, 1, 2);
类似:
o.m = f; o.m(1,2); delete o.m;
这儿的o 就是所谓的 Call Object了,在函数内,可以通过关键字 this 获取。