[关闭]
@Tean 2017-09-25T05:44:45.000000Z 字数 3271 阅读 933

Javascript

javascript


一、JavaScript

1.1 组成部分

  • ECMAScript
  • DOM
  • BOM

二、数据类型

2.1 基本数据类型

  • number : 整数浮点数Infinity0x10100100b10
  • string : 'str' "str"
  • boolean : true false
  • undefined : undefined
  • null : null

2.2 引用数据类型

  • Object
    • Function
    • Array
    • Date
    • String
    • RegExp
    • ...

三、变量

3.1 声明变量

  1. var var_name;
  2. var va, vb, vc;
  3. // ES6增
  4. let va; // 变量
  5. const PI; // 常量(值不能改变)

3.2 变量赋值

  1. var a; // 声明变量
  2. a = 4; // 变量赋值
  3. var b = 5;
  4. var x = 5, y = 6, z = 7;

3.3 变量名的命名规则

  • 由数字、字母、下划线、$组成;
  • 不能以数字开头;
  • 不能是关键字和保留字;
  • 区分大小写;

3.4 变量名的命名规范

  • 采用驼峰命名;
  • 见名知意;

四、运算符

4.1 算术运算符

+-*/%++--

4.2 赋值运算符

=+=-=*=/=%=

4.3 关系运算符

><>=<===!====!==

4.4 逻辑运算符

&|!&&||

4.5 条件运算符(三元运算符、三目运算符)

boolean_exp ? true_val : false_val

4.6 字符串连接符

+

4.7 位运算符

~&|^<<>>>>>

五、条件语句

5.1 if语句

5.1.1 简单if

5.1.2 if-else

5.1.3 多重if

5.1.4 嵌套if

5.2 switch语句

  1. swtich(exp) {
  2. case num1:
  3. // TODO
  4. break;
  5. case num2:
  6. // TODO
  7. break;
  8. ...
  9. default:
  10. // TODO
  11. }

六、循环语句

6.1 while循环

  1. while(boolean_exp) {
  2. // TODO
  3. }

6.2 do-while循环

  1. do {
  2. // TODO
  3. } while(boolean_exp);

6.3 for循环

  1. for(var i = 0; i < 10; i++) {
  2. // TODO
  3. }

6.4 break、continue

  • break : 终止循环
  • continue : 结束本轮循环,进入下一轮循环

七、数组

  1. // 定义数组
  2. var ary1 = new Array();
  3. var ary2 = new Array(5);
  4. var ary3 = new Array(1, 2, 3);
  5. var ary4 = [4, 5, 6];
  6. // 获取数组长度
  7. var len = ary.length;
  8. // 数组的遍历
  9. // 普通for循环
  10. for(var i = 0; i < ary.length; i++) {
  11. console.log(ary[i]);
  12. }
  13. // 普通for循环-升级版
  14. for(var i = 0, len = ary.length; i < len; i++) {
  15. console.log(ary[i]);
  16. }
  17. // for-in
  18. for(var i in ary) {
  19. console.log(ary[i]);
  20. }
  21. // 使用ES5的forEach
  22. ary.forEach(function(val) {
  23. console.log(val);
  24. });
  25. // 使用ES6的for-of
  26. for(var v of ary) {
  27. console.log(v);
  28. }
  29. // 数组常用方法
  30. // 排序
  31. ary.sort(function(a, b) {
  32. return a - b;
  33. });
  34. ary.push(3); // 最后添加一个元素3
  35. ary.pop(); // 删除最后一个元素
  36. ary.unshift(4); // 开头位置添加元素
  37. ary.shift(); // 删除第一个元素
  38. ary.splice(2, 1, 3, 4);
  39. ary.slice(2, 4); // 提取子数组
  40. ary.reverse(); // 反转
  41. ary.join('-'); // 把数组按照指定分隔符连接成字符串

八、函数

  1. // 定义函数
  2. // 1
  3. function fn() {
  4. // TODO
  5. }
  6. // 2
  7. var fn = function() {
  8. // TODO
  9. };
  10. // 3
  11. var fn = new Function('params', 'TODO');
  1. // 函数传参1
  2. var num = 4;
  3. function fn(num) {
  4. num = 3;
  5. }
  6. fn(num);
  7. console.log(num); // 4
  1. // 函数传参2
  2. var obj = {age:23};
  3. function fn(obj) {
  4. obj.age = 3;
  5. }
  6. fn(obj);
  7. console.log(obj.age); // 3
  1. // 函数传参3
  2. var obj = {age:23};
  3. function fn(obj) {
  4. obj = {age: 24}
  5. }
  6. fn(obj);
  7. console.log(obj.age); // 23
  1. // 面试题1
  2. var s = 'a';
  3. s.name = 'age';
  4. console.log(s.name); // undefined
  1. // 面试题2
  2. var s = new String('a');
  3. s.name = 'age';
  4. console.log(s.name); // age
  1. (function() {
  2. })();
  3. (function() {
  4. }());
  5. ~function() {
  6. }();

九、字符串

9.1 定义字符串

  1. // 定义字符串
  2. var s1 = 'hello world';
  3. var s2 = "hello world";
  4. var s3 = new String("hello world");

9.2 属性

  1. var len = str.length; // 获取字符串长度

9.3 方法

  1. .charAt() // 根据下标找字符
  2. .indexOf() // 根据字符找下标,如果找不到则返回-1
  3. .lastIndexOf() // 根据字符找下标,是从后向前找
  4. .search() // 查找,支持正则
  5. .substring(start, end) // 截取字符串,包括start不包括end
  6. .substr(start, length) // 截取字符串,length为要截取字符串的长度
  7. .split() // 按照自定分隔符把字符串拆分为数组
  8. .toUpperCase() // 转换为大写
  9. .toLowerCase() // 转换为小写
  10. .replace() // 替换,支持正则
  11. .trim() // 去除收尾空格

十、Date

  1. // 获取日期对象
  2. var date = new Date(); // 获取当前时间
  3. var date2 = new Date(23523452345); // 设置时间
  4. date.getFullYear();
  5. date.getMonth(); // 注意要+1
  6. date.getDate();
  7. date.getHours();
  8. date.getMinutes();
  9. date.getSeconds();
  10. date.getDay(); // 星期
  11. date.getTime(); // 获取时间戳

十一、Math

  1. Math.PI // 圆周率
  2. Math.abs(); // 绝对值
  3. Math.ceil(); // 向上取整
  4. Math.floor(); // 向下取整
  5. Math.round(); // 四舍五入
  6. Math.random(); // 产生一个 [0, 1) 的随机数
  7. // 产生随机数[min, max]的规律
  8. var num = Math.floor(Math.random() * (max - min + 1) + min);

十二、字符串和数字的转换

12.1 字符串 -> 数字

  1. Number(str) // 不推荐使用
  2. parseInt(str, 10)
  3. parseFloat(str)

12.2 数字 -> 字符串

  1. var a = 34;
  2. var str = a + '';
  3. var s = a.toString();

十三、正则RegExp

13.1 定义

  1. var reg1 = new RegExp("\d");
  2. var reg2 = new RegExp("\d", gi);
  3. var reg3 = /\d/;
  4. var reg4 = /\d/ig;

13.2 元字符

  1. ^ 匹配开头
  2. $ 匹配结束
  3. . 匹配所有字符
  4. \d 匹配数字
  5. \w 匹配数字、字母、下划线
  6. \s 匹配空白
  7. \n 匹配换行
  8. \b 匹配单词边界
  9. \D 匹配非数字
  10. ...

13.3 量词

  1. {m} m
  2. {m,} 至少m
  3. {m,n} mn
  4. ? 最多一次
  5. + 最少一次
  6. * 任意次数

13.4 方法

  1. var reg = /^[1-9]\d{4, 10}$/;
  2. var qq = '98237529';
  3. console.log(reg.test(qq));
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注