这篇blog是对上课快速学习的一个小的总结,里面没有过多细扣语言,更多的是关注语言的特性和特点。因为javascipt本身是一门比较随意的语言,我们这里就不讨论那些奇怪的用法了。
一个经典的基于算法和函数的语言
1. 操作台显示
有两种方式
node // pour lancer l'interpreteur interactif
node toto.js // pour lancer un script javascript
我们可以在交互模式和浏览器里看到代码的运行结果
i = 1
console.log("coucou " + i)
在html页面中引用javascript
<html>
<script src="./toto.js"></script>
</html>
2. 数据类型
变量不需要声明,他们的类型由他们的书写形式和应用决定
1. 数字 : i = 2012 //最大 2^52 (10^15)
2. string : a = "coucou"
3. booleen : b = true
变量也可以在使用前声明,这样它会被定义为undefined类型
var x
console.log(x)
3. 控制结构
if / else if / else
while ()
do {} while ()
for () / break
switch() / case / break
和其他语言一样。。。。
4. 函数
function add(a, b) {
return a+b
}
console.log(add(2,3))
对于javascript, “;”是可选的
一个先进的基于函数的语言
1. 函数的细节
null == undefined
false == 0
"" == 0
"5" == 5
以上皆为真,相等
null === undefined
false === 0
"" === 0
"5" === 5
以上皆为假,绝对相等
2. 进一步讲函数
重新定义函数,重新定义后的函数回丢失之前的定义
var a = function(a,b) { return a + b }
console.log(a(4,5))//输出9
console.log = "a"
console.log(a(4,5))//输出错误
参数数量问题
function moins(a, b, c) {
return (a - b);
}
console.log(moins(3, 2))//输出 1
console.log(moins(3, 2, 4, 8))//输出 1
console.log(moins(2));//输出 NaN(not a number)
高阶函数
function additionneur(x) {
return function (a) { return a + x }
}
var plusDeux = additionneur(2);
var plusTrois = additionneur(3);
console.log (plusDeux(10))
console.log (plusTrois(2))
3. 一点对象和表格
对象并非如java对象,它更像是一个HashMap,
var chose = { "hello" : "coucou", 3:10}
chose["3"];
-> 10
chose.hello;
-> coucou
delete chose.hello;
chose
for (o in chose) {
console.log( o + '->' + chose[o])
}
表格
mesAmis = ["bob", "raoul", "louis"]
for (i = 0; i < mesAmis.length; i++) {
console.log("->" + mesAmis[i]);
}
tesAmis = new Array();
tesAmis.push(1);
tesAmis.push('leon');
4. 方法
doe = "Doe"
typeof doe.toUpperCase
doe.toUpperCase()
5. 自动变量
function arguments() {
return "Vous avez fourni " + arguments.length + " arguments.";
}
arguments(1, 2, 3, "toto")
6. 异常
和java相同
throw + try/catch