发表于: 2017-04-03 23:12:02
1 670
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
开启任务1:九宫格
掌握javascript的变量,运算符,控制结构,对象。
明天计划的事情:(一定要写非常细致的内容)
了解javascript的全局函数;
学习使用javascript的自定义函数;
javascript如何操作DOM;
javascript如何修改CSS;
遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)
变量
在 JavaScript 中声明一个新变量的方法是使用关键字 var:
var a;
var name = "simon";
如果声明了一个变量却没有对其赋值,那么这个变量的类型就是 undefined。从 ECMAScript Edition 6 开始将有所不同的, let 和 const 关键字允许你创建块作用域的变量。
运算符
JavaScript的算术操作符包括 +、-、*、/ 和 % ——求余(与模运算不同)。赋值使用 = 运算符,此外还有一些复合运算符,如 += 和 -=,它们等价于 x = x op y。
x += 5; // 等价于 x = x + 5;
可以使用 ++ 和 -- 分别实现变量的自增和自减。两者都可以作为前缀或后缀操作符使用。
操作符 +还可以用来连接字符串:
"hello" + " world"; // hello world
如果你用一个字符串加上一个数字(或其他值),那么操作数都会被首先转换为字符串。如下所示:
"3" + 4 + 5; // 345
3 + 4 + "5"; // 75
这里不难看出一个实用的技巧——通过与空字符串相加,可以将某个变量快速转换成字符串类型。
JavaScript 中的比较操作使用 <、>、<= 和 >=,这些运算符对于数字和字符串都通用。相等的比较稍微复杂一些。由两个“=(等号)”组成的相等运算符有类型自适应的功能,具体例子如下:
123 == "123" // true
1 == true; // true
如果在比较前不需要自动类型转换,应该使用由三个“=(等号)”组成的相等运算符:
1 === true; //false
123 === "123"; // false
JavaScript 还支持 != 和 !== 两种不等运算符,具体区别与两种相等运算符的区别类似。
JavaScript 还提供了 位操作符。
控制结构
JavaScript 的控制结构使用 if 和 else 来定义条件语句,还可以连起来使用:
var name = "kittens";
if (name == "puppies") {
name += "!";
} else if (name == "kittens") {
name += "!!";
} else {
name = "!" + name;
}
name == "kittens!!"; // true
JavaScript 支持 while 循环和 do-while 循环。前者适合常见的基本循环操作,如果需要循环体至少被执行一次则可以使用 do-while:
while (true) {
// 一个无限循环!
}
var input;
do {
input = get_input();
} while (inputIsNotValid(input))
JavaScript 的 for 循环可在一行代码中提供控制信息。
for (var i = 0; i < 5; i++) {
// 将会执行五次
}
&& 和 || 运算符使用短路逻辑(short-circuit logic),是否会执行第二个语句(操作数)取决于第一个操作数的结果。在需要访问某个对象的属性时,使用这个特性可以事先检测该对象是否为空:
var name = o && o.getName();
或运算可以用来设置默认值:
var name = otherName || "default";
类似地,JavaScript 也有一个用于条件表达式的三元操作符:
var allowed = (age > 18) ? "yes" : "no";
在需要多重分支时可以使用 基于一个数字或字符串的switch 语句:
switch(action) {
case 'draw':
drawIt();
break;
case 'eat':
eatIt();
break;
default:
doNothing();
}
如果你不使用 break 语句,JavaScript 解释器将会执行之后 case 中的代码。除非是为了调试,一般你并不需要这个特性,所以大多数时候不要忘了加上 break。
switch(a) {
case 1: // 继续向下
case 2:
eatIt();
break;
default:
doNothing();
}
default 语句是可选的。switch 和 case 都可以使用需要运算才能得到结果的表达式;在 switch 的表达式和 case 的表达式是使用 === 严格相等运算符进行比较的:
switch(1 + 3){
case 2 + 2:
yay();
break;
default:
neverhappens();
}
对象
JavaScript 中的对象可以简单理解成“名称-值”对。
评论