一、基础数据类型

1.1 数组

数组增加长度的方法

  1. // 修改数组长度
  2. var arrays = [1,2,3];
  3. arrays.length = 5;
  4. console.log(array)
  5. // 或者可以直接
  6. arrays[5] = x;
  7. // 此时 直接扩容会导致中间的直接为空

数组筛选

  1. var arr = [1,2,34,56,78,23,12,12]
  2. var k = []
  3. for (let i = 0; i < arr.length; i++) {
  4. if (arr[i] > 12) {
  5. k[k.length] = arr[i];
  6. }
  7. }
  8. alert(k)

冒泡排序

  1. var arr = [1,4,2,45,78,89];
  2. for (let i = 0; i < arr.length; i++) {
  3. for (let j = 0; j < arr.length-1; j++) {
  4. if (arr[j]>arr[j+1]){
  5. let tmp = arr[j];
  6. arr[j] = arr[j+1];
  7. arr[j+1] = tmp;
  8. }
  9. }
  10. }
  11. alert(arr);

1.2 函数

arguments

  1. <script>
  2. function f() {
  3. console.log(arguments)
  4. }
  5. f(1,2,3)
  6. // arguments
  7. /*
  8. 伪数组:
  9. 具有length属性
  10. 按照索引储蓄
  11. 没有数组的方法
  12. */
  13. </script>

声明方式

  1. // 方式一直接声明
  2. function f() {
  3. alert()
  4. }
  5. // 方式二变量式
  6. var fun = function () {
  7. alert()
  8. }
  9. // 方式三函数式写法【只有一个形参】
  10. var ff = funs=>{
  11. alert(funs)
  12. }
  13. ff("???")

1.3 作用域

image.png
image.png

1.4预加载

image.png

二、对象

2.1 创建对象

创建对象

  1. // 创建方式一
  2. var obj = {
  3. name:"小王",
  4. age:18,
  5. say:function (){
  6. alert("Say")
  7. }
  8. };
  9. // 调用
  10. alert(obj.name);
  11. alert(obj["name"])
  12. obj.say()
  13. // 创建方式二
  14. let object = new Object();
  15. object.name="zhangsan";
  16. object.age = 18;
  17. object.fun=function (){
  18. alert("say")
  19. }

构造函数创建对象

  1. function Star(name,age,sex) {
  2. this.name = name;
  3. this.age = age;
  4. this.sex = sex;
  5. this.sing = function (sings) {
  6. alert(sings);
  7. }
  8. }
  9. let star = new Star("zhangsan",18,"男");
  10. star.sing("好运来");

2.2 遍历对象

  1. function Star(name,age,sex) {
  2. this.name = name;
  3. this.age = age;
  4. this.sex = sex;
  5. this.sing = function (sings) {
  6. alert(sings);
  7. }
  8. }
  9. let star = new Star("zhangsan",18,"男");
  10. //star.sing("好运来");
  11. for (let starKey in star) {
  12. // 获得属性值 starKey 就是Key属性
  13. console.log(star[starKey])
  14. }

2.3 内置对象

学会查询文档
https://developer.mozilla.org/zh-CN/docs/MDN/Contribute/Getting_started

1) Math

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math

  1. // 圆周率
  2. console.log(Math.PI)
  3. console.log(Math.max(-1,1,2,3))
  4. console.log(Math.min(-1,1,2,3))

2) Date

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

  1. // 当前时间
  2. let date = new Date();
  3. console.log(date)
  4. // 自定义时间 数字型会大一个月
  5. let zdy = new Date(2021,9,19);
  6. console.log(zdy)
  7. // 建议
  8. let day = new Date('2019-1-1 8:30:29');
  9. console.log(day)
  10. // 格式化
  11. let day = new Date('2019-1-1 8:30:29');
  12. console.log(day.getFullYear())
  13. console.log(day.getMonth()+1);// 要加1 不然不准

image.png

  1. // 1970年距今毫秒数
  2. let date = new Date();
  3. let time = date.getTime();
  4. var valueOf = date.valueOf();
  5. console.log(time);
  6. console.log(valueOf);
  7. // 最常用的
  8. console.log(+new Date());
  9. console.log(Date.now());

3) Array

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

  1. // 创建长度为2 的数组
  2. let array = new Array(2);
  3. // 表示数组元素有 2 3
  4. let array2 = new Array(2,3);
  5. // 检测是否数组
  6. if (array2 instanceof Array) {
  7. alert("?")
  8. }
  9. console.log(Array.isArray(array));
  10. // 末尾添加 返回值为当前数组长度
  11. let number = array.push(1,"Hello","hh");
  12. console.log(number);
  13. // 开头添加 返回值同上
  14. array.unshift(1,34,56);
  15. // 删除最后一个
  16. array.pop();
  17. // 删除开头
  18. array.shift();
  19. // 返回值都为被删除的
  20. // 反转
  21. array.reverse();
  22. // 数组排序
  23. // let sort = array.sort();
  24. array.sort(function (a,b) {
  25. return a-b;
  26. })
  27. console.log(array)
  28. var arr = [1,2,3,4,1];
  29. // 返回第一个索引 不存在 -1
  30. console.log(arr.indexOf(1));
  31. // 返回最后一个的索引
  32. console.log(arr.lastIndexOf(1));
  33. // 转换字符串
  34. console.log(arr.toString());
  35. // 分隔符转换
  36. console.log(arr.join(','));

4) 字符串