Skip to content

Commit 4353e6e

Browse files
committed
04-01
1 parent 46a30f5 commit 4353e6e

File tree

1 file changed

+84
-2
lines changed

1 file changed

+84
-2
lines changed

README.md

Lines changed: 84 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
* [03-02](https://github.com/TYRMars/JSlearn#03-02) `异步和单线程-单线程`
2323
* [03-03](https://github.com/TYRMars/JSlearn#03-03) `其他知识点-日期和Math`
2424
* [03-04](https://github.com/TYRMars/JSlearn#03-04) `其他知识点-数组和对象的API`
25+
#### 04
26+
* [04-01](https://github.com/TYRMars/JSlearn#04-01) `从基础知识到JS-Web-API`
2527

2628

2729

@@ -884,18 +886,98 @@ function formatDate(dt) {
884886
var year = dt.getFullYear();
885887
var month = dt.getMonth() + 1;
886888
var date = dt.getDate();
887-
if (month = 10) {
889+
if (month < 10) {
888890
//强制转换类型
889891
month = '0' + month;
890892
}
891893
if (date < 10) {
892894
//强制转换类型
895+
date = '0' + date;
893896
}
894-
897+
//强制转换类型
898+
return year + '-' + month + '-' + date;
895899
}
900+
var dt = new Date();
901+
var formatDate = formatDate(dt);
902+
console.log(formatDate);
896903
```
897904
* 获取随机数,要求是长度一致的字符串格式
905+
```JavaScript
906+
var random = Math.random();
907+
var random = random + '0000000000'; //后面加上10个0
908+
var random = random.slice(0,10);
909+
console.log(random);
910+
```
898911
* 写一个能遍历对象和数组的通用forEach函数
912+
```JavaScript
913+
//do
914+
var arr = [1,2,3];
915+
//注意,这里的参数的顺序换了,为了和对象的遍历格式一致
916+
forEach(arr,function (index,item) {
917+
console.log(index.item);
918+
})
919+
920+
var obj = {x:100,y:200};
921+
forEach(obj,function (key,value) {
922+
console.log(key,value);
923+
})
924+
925+
//init
926+
function forEach(obj,fn) {
927+
var key;
928+
if (obj instanceof Array) {
929+
//准确判断是不是一个数组
930+
obj.forEach(function (index.item) {
931+
fn(index,item);
932+
})
933+
}else {
934+
//不是数组就是对象
935+
for (key in obj){
936+
fn(key,obj[key]);
937+
}
938+
}
939+
}
940+
```
941+
942+
## 04-01
943+
### 从基础知识到JS-Web-API
944+
* 变量类型和计算
945+
* 原型和原型链
946+
* 闭包和作用域
947+
* 异步和单线程
948+
* 其他(如日期、Math、各种常用API)
949+
#### 特点
950+
* 特点:表面上来看不能用于工作中开发代码
951+
* 内置函数:`Object Array Boolean String ......`
952+
* 内置对象:`Math JSON ...`
953+
* 我们连在网页弹出一句`Hello World`都不能实现
954+
#### JS-Web-API
955+
* JS基础知识:ECMA 262标准
956+
* JS-Web-API:W3C标准
957+
* W3C标准中关于JS的规定有:
958+
* DOM操作
959+
* BOM操作
960+
* 事件绑定
961+
* ajax请求(包含http协议)
962+
* 存储
963+
#### 基本操作
964+
* 页面弹框是`windows.alert(123)`,浏览器需要做:
965+
* 定义一个`windows`全局变量,对象类型;
966+
* 给它定义一个`alert`属性,属性值是一个函数;
967+
* 获取元素document.getElementById(id),浏览器需要:
968+
* 定义一个document全局变量,对象属性;
969+
* 给它定义一个getElementById的属性,属性值是一个函数;
970+
* W3C标准没有规定任何JS基础相关的东西;
971+
* 不管什么变量类型、原型、作用域和异步
972+
* 只管定义用于浏览器中JS操作页面的API和全局变量
973+
* 全面考虑,JS内置的全局函数和对象有哪些?
974+
* 之前ECMA的
975+
* 比如 window document
976+
* 所有未定义的全局变量,如`navigator.userAgent`
977+
#### 总结
978+
* 常说的JS(浏览器执行的JS)包含两个部分:
979+
* JS基础知识(ECMA262标准);
980+
* JS-Web-API(W3C标准);
899981
---
900982

901983
### JSDemo JS小程序

0 commit comments

Comments
 (0)