File tree Expand file tree Collapse file tree 1 file changed +68
-0
lines changed Expand file tree Collapse file tree 1 file changed +68
-0
lines changed Original file line number Diff line number Diff line change 57
57
4 . 变量、函数和运算符
58
58
59
59
- [ 变量声明] ( #变量声明 )
60
+ - [ 函数声明] ( #函数声明 )
60
61
61
62
### 缩进层级
62
63
@@ -1131,7 +1132,74 @@ function doSomething() {
1131
1132
` ` `
1132
1133
- 这个函数得出的结果是NaN值。
1133
1134
1135
+ - 作者倾向的风格,把所有定义放在作用域开始部分,用逗号分隔,可以节省写` var ` 的字节。
1136
+ ` ` ` javascript
1137
+ function doSomethingWithItems (items ) {
1138
+
1139
+ var value = 10 ,
1140
+ result = value + 10 ,
1141
+ i,
1142
+ len;
1143
+
1144
+ for (i= 0 , len= items .length ; i < len; i++ ) {
1145
+ doSomething (items[i]);
1146
+ }
1147
+ }
1148
+ ` ` `
1149
+
1150
+ [返回顶部](#编程风格)
1151
+
1152
+ ### 函数声明
1134
1153
1154
+ - 函数声明也会被javaScript引擎提前。
1155
+ ` ` ` javascript
1156
+ // 不好的写法
1157
+ doSomething ();
1158
+
1159
+ function doSomething () {
1160
+ alert (' Hello world!' );
1161
+ }
1162
+ ` ` `
1163
+ - javaScript会把代码解释为
1164
+ ` ` ` javascript
1165
+ function doSomething () {
1166
+ alert (' Hello world!' );
1167
+ }
1168
+
1169
+ doSomething ();
1170
+ ` ` `
1171
+ - 我们应该先声明函数再使用
1172
+ ` ` ` javascript
1173
+ function doSomethingWithItems (items ) {
1174
+
1175
+ var i,len,
1176
+ value = 10 ,
1177
+ result = value + 10 ;
1178
+
1179
+ function doSomething (item ) {
1180
+ // 代码逻辑
1181
+ }
1182
+
1183
+ for (i= 0 , len= items .length ; i < len; i++ ) {
1184
+ doSomething (items[i]);
1185
+ }
1186
+ }
1187
+ ` ` `
1188
+ -- 另外,函数不应该出现在语句块之内。
1189
+ ` ` ` javascript
1190
+
1191
+ // 不好的写法
1192
+ if (condition) {
1193
+ function doSomething () {
1194
+ alert (' hi' );
1195
+ }
1196
+ } else {
1197
+ function doSomething () {
1198
+ alert (' Yo' );
1199
+ }
1200
+ }
1201
+ ` ` `
1202
+ - 因为函数的声明会被提前,所以不管这里的条件满足与否,第二个同名的函数会把第一个函数覆盖。所以上面的代码不会按照我们的意图来执行。
1135
1203
1136
1204
[返回顶部](#编程风格)
1137
1205
You can’t perform that action at this time.
0 commit comments